]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/nova/spec/shared_examples.rb
try again, with puppetforge modules, correctly included now
[dsa-puppet.git] / 3rdparty / modules / nova / spec / shared_examples.rb
diff --git a/3rdparty/modules/nova/spec/shared_examples.rb b/3rdparty/modules/nova/spec/shared_examples.rb
new file mode 100644 (file)
index 0000000..b7b1651
--- /dev/null
@@ -0,0 +1,57 @@
+shared_examples_for "a Puppet::Error" do |description|
+  it "with message matching #{description.inspect}" do
+    expect { should have_class_count(1) }.to raise_error(Puppet::Error, description)
+  end
+end
+
+shared_examples 'generic nova service' do |service|
+
+  context 'with default parameters' do
+    it 'installs package and service' do
+      should contain_package(service[:name]).with({
+        :name   => service[:package_name],
+        :ensure => 'present',
+        :notify => "Service[#{service[:name]}]",
+        :tag    => ['openstack', 'nova']
+      })
+      should contain_service(service[:name]).with({
+        :name      => service[:service_name],
+        :ensure    => 'stopped',
+        :hasstatus => true,
+        :enable    => false
+      })
+    end
+  end
+
+  context 'with overridden parameters' do
+    let :params do
+      { :enabled        => true,
+        :ensure_package => '2012.1-2' }
+    end
+
+    it 'installs package and service' do
+      should contain_package(service[:name]).with({
+        :name   => service[:package_name],
+        :ensure => '2012.1-2',
+        :notify => "Service[#{service[:name]}]"
+      })
+      should contain_service(service[:name]).with({
+        :name      => service[:service_name],
+        :ensure    => 'running',
+        :hasstatus => true,
+        :enable    => true
+      })
+    end
+  end
+
+  context 'while not managing service state' do
+    let :params do
+      { :enabled        => false,
+        :manage_service => false }
+    end
+
+    it 'does not control service state' do
+      should contain_service(service[:name]).without_ensure
+    end
+  end
+end