X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=spec%2Fspec_helper.rb;h=1aff33cb327dbf939772c4bca829667c59d5fba7;hb=refs%2Fchanges%2F99%2F55399%2F1;hp=990ecfe30e7522e09bc0b48e144f79d9b087e122;hpb=41a6e9d05eb5a0b15d5748178a3300c1d2c705f4;p=integration%2Fpackaging%2Fpuppet-opendaylight.git diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 990ecfe..1aff33c 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,12 +1,7 @@ -# Required for coverage reporting -# See: https://coveralls.zendesk.com/hc/en-us/articles/201769485-Ruby-Rails -require 'coveralls' -Coveralls.wear! - require 'puppetlabs_spec_helper/module_spec_helper' -# Shared tests for supported OSs -def supported_os_tests(yum_repo, features) +# Tests that are common to all possible configurations +def generic_tests(yum_repo) # Confirm that module compiles it { should compile } it { should compile.with_all_deps } @@ -26,32 +21,13 @@ def supported_os_tests(yum_repo, features) it { should contain_class('opendaylight::service').that_comes_before('opendaylight') } it { should contain_class('opendaylight').that_requires('opendaylight::service') } - # Confirm presense of other resources + # Confirm presense of generic resources it { should contain_service('opendaylight') } - it { should contain_yumrepo('opendaylight') } - it { should contain_package('opendaylight') } it { should contain_file('org.apache.karaf.features.cfg') } - # Confirm relationships between other resources - it { should contain_package('opendaylight').that_requires('Yumrepo[opendaylight]') } - it { should contain_yumrepo('opendaylight').that_comes_before('Package[opendaylight]') } - - # Confirm properties of other resources + # Confirm properties of generic resources # NB: These hashes don't work with Ruby 1.8.7, but we # don't support 1.8.7 so that's okay. See issue #36. - it { - should contain_yumrepo('opendaylight').with( - 'enabled' => '1', - 'gpgcheck' => '0', - 'descr' => 'OpenDaylight SDN controller', - 'baseurl' => yum_repo, - ) - } - it { - should contain_package('opendaylight').with( - 'ensure' => 'present', - ) - } it { should contain_service('opendaylight').with( 'ensure' => 'running', @@ -60,6 +36,19 @@ def supported_os_tests(yum_repo, features) 'hasrestart' => 'true', ) } + it { + should contain_file('org.apache.karaf.features.cfg').with( + 'ensure' => 'file', + 'path' => '/opt/opendaylight-0.2.2/etc/org.apache.karaf.features.cfg', + ) + } +end + +# Shared tests that specialize in testing Karaf feature installs +def karaf_feature_tests(features) + # Confirm properties of other resources + # NB: These hashes don't work with Ruby 1.8.7, but we + # don't support 1.8.7 so that's okay. See issue #36. it { should contain_file('org.apache.karaf.features.cfg').with( 'ensure' => 'file', @@ -69,6 +58,71 @@ def supported_os_tests(yum_repo, features) } end +def install_method_tests(method, yum_repo, tarball_url='', unitfile_url='') + case method + when 'rpm' + # Confirm presense of RPM-related resources + it { should contain_yumrepo('opendaylight') } + it { should contain_package('opendaylight') } + it { should contain_package('opendaylight').that_requires('Yumrepo[opendaylight]') } + it { should contain_yumrepo('opendaylight').that_comes_before('Package[opendaylight]') } + + # Confirm properties of RPM-related resources + # NB: These hashes don't work with Ruby 1.8.7, but we + # don't support 1.8.7 so that's okay. See issue #36. + it { + should contain_yumrepo('opendaylight').with( + 'enabled' => '1', + 'gpgcheck' => '0', + 'descr' => 'OpenDaylight SDN controller', + 'baseurl' => yum_repo, + ) + } + it { + should contain_package('opendaylight').with( + 'ensure' => 'present', + ) + } + when 'tarball' + if tarball_url == '' + fail('Expected tarball_url param') + end + + if unitfile_url == '' + fail('Expected unitfile_url param') + end + + # Confirm presense of tarball-related resources + it { should contain_archive('opendaylight-0.2.2') } + it { should contain_archive('opendaylight-systemd') } + + # Confirm properties of tarball-related resources + # NB: These hashes don't work with Ruby 1.8.7, but we + # don't support 1.8.7 so that's okay. See issue #36. + it { + should contain_archive('opendaylight-0.2.2').with( + 'ensure' => 'present', + 'url' => tarball_url, + 'target' => '/opt/', + 'checksum' => false, + 'strip_components' => 1, + ) + } + it { + should contain_archive('opendaylight-systemd').with( + 'ensure' => 'present', + 'url' => unitfile_url, + 'target' => '/usr/lib/systemd/system/', + 'root_dir' => '.', + 'checksum' => false, + 'strip_components' => 1, + ) + } + else + fail("Unexpected install method: #{method}") + end +end + # Shared tests for unsupported OSs def unsupported_os_tests(expected_err_msg) # Confirm that classes fail on unsupported OSs