]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/nova/spec/classes/nova_rabbitmq_spec.rb
try again, with puppetforge modules, correctly included now
[dsa-puppet.git] / 3rdparty / modules / nova / spec / classes / nova_rabbitmq_spec.rb
diff --git a/3rdparty/modules/nova/spec/classes/nova_rabbitmq_spec.rb b/3rdparty/modules/nova/spec/classes/nova_rabbitmq_spec.rb
new file mode 100644 (file)
index 0000000..a5c7537
--- /dev/null
@@ -0,0 +1,105 @@
+require 'spec_helper'
+
+describe 'nova::rabbitmq' do
+
+  let :facts do
+    {
+      :puppetversion => '2.7',
+      :osfamily => 'Debian'
+    }
+  end
+
+  describe 'with defaults' do
+
+    it 'should contain all of the default resources' do
+
+      should contain_class('rabbitmq::server').with(
+        :service_ensure    => 'running',
+        :port              => '5672',
+        :delete_guest_user => false
+      )
+
+      should contain_rabbitmq_vhost('/').with(
+        :provider => 'rabbitmqctl'
+      )
+    end
+
+  end
+
+  describe 'when a rabbitmq user is specified' do
+
+    let :params do
+      {
+        :userid   => 'dan',
+        :password => 'pass'
+      }
+    end
+
+    it 'should contain user and permissions' do
+
+      should contain_rabbitmq_user('dan').with(
+        :admin    => true,
+        :password => 'pass',
+        :provider => 'rabbitmqctl'
+      )
+
+      should contain_rabbitmq_user_permissions('dan@/').with(
+        :configure_permission => '.*',
+        :write_permission     => '.*',
+        :read_permission      => '.*',
+        :provider             => 'rabbitmqctl'
+      )
+
+    end
+
+  end
+
+  describe 'when disabled' do
+    let :params do
+      {
+        :userid   => 'dan',
+        :password => 'pass',
+        :enabled  => false
+      }
+    end
+
+    it 'should be disabled' do
+
+      should_not contain_rabbitmq_user('dan')
+      should_not contain_rabbitmq_user_permissions('dan@/')
+      should contain_class('rabbitmq::server').with(
+        :service_ensure    => 'stopped',
+        :port              => '5672',
+        :delete_guest_user => false
+      )
+
+      should_not contain_rabbitmq_vhost('/')
+
+    end
+  end
+
+  describe 'with clustering' do
+
+    let :params do
+      {
+        :cluster_disk_nodes => ['rabbit01', 'rabbit02', 'rabbit03']
+      }
+    end
+
+    it 'should contain all the clustering resources' do
+
+      should contain_class('rabbitmq::server').with(
+        :service_ensure           => 'running',
+        :port                     => '5672',
+        :delete_guest_user        => false,
+        :config_cluster           => true,
+        :cluster_disk_nodes       => ['rabbit01', 'rabbit02', 'rabbit03'],
+        :wipe_db_on_cookie_change => true
+      )
+
+    end
+
+  end
+
+
+end