]> git.donarmstrong.com Git - dsa-puppet.git/blobdiff - 3rdparty/modules/rabbitmq/spec/acceptance/queue_spec.rb
move to puppetlabs rabbitmq module
[dsa-puppet.git] / 3rdparty / modules / rabbitmq / spec / acceptance / queue_spec.rb
diff --git a/3rdparty/modules/rabbitmq/spec/acceptance/queue_spec.rb b/3rdparty/modules/rabbitmq/spec/acceptance/queue_spec.rb
new file mode 100644 (file)
index 0000000..a1643a6
--- /dev/null
@@ -0,0 +1,157 @@
+require 'spec_helper_acceptance'
+
+describe 'rabbitmq binding:' do
+
+
+  context "create binding and queue resources when rabbit using default management port" do
+    it 'should run successfully' do
+      pp = <<-EOS
+      if $::osfamily == 'RedHat' {
+        class { 'erlang': epel_enable => true }
+        Class['erlang'] -> Class['::rabbitmq']
+      }
+      class { '::rabbitmq':
+        service_manage    => true,
+        port              => '5672',
+        delete_guest_user => true,
+        admin_enable      => true,
+      } ->
+
+      rabbitmq_user { 'dan':
+        admin    => true,
+        password => 'bar',
+        tags     => ['monitoring', 'tag1'],
+      } ->
+      
+      rabbitmq_user_permissions { 'dan@host1':
+        configure_permission => '.*',
+        read_permission      => '.*',
+        write_permission     => '.*',
+      }
+
+      rabbitmq_vhost { 'host1':
+        ensure => present,
+      } ->
+
+      rabbitmq_exchange { 'exchange1@host1':
+        user     => 'dan',
+        password => 'bar',
+        type     => 'topic',
+        ensure   => present,
+      } ->
+
+      rabbitmq_queue { 'queue1@host1':
+        user        => 'dan',
+        password    => 'bar',
+        durable     => true,
+        auto_delete => false,
+        ensure      => present,
+      } ->
+
+      rabbitmq_binding { 'exchange1@queue1@host1':
+        user             => 'dan',
+        password         => 'bar',
+        destination_type => 'queue',
+        routing_key      => '#',
+        ensure           => present,
+      }
+      
+      EOS
+
+      apply_manifest(pp, :catch_failures => true)
+      apply_manifest(pp, :catch_changes => true)
+    end
+
+    it 'should have the binding' do
+      shell('rabbitmqctl list_bindings -q -p host1') do |r|
+        expect(r.stdout).to match(/exchange1\sexchange\squeue1\squeue\s#/)
+        expect(r.exit_code).to be_zero
+      end
+    end
+    
+    it 'should have the queue' do
+      shell('rabbitmqctl list_queues -q -p host1') do |r|
+        expect(r.stdout).to match(/queue1/)
+        expect(r.exit_code).to be_zero
+      end
+    end
+
+  end
+  
+  context "create binding and queue resources when rabbit using a non-default management port" do
+    it 'should run successfully' do
+      pp = <<-EOS
+      if $::osfamily == 'RedHat' {
+        class { 'erlang': epel_enable => true }
+        Class['erlang'] -> Class['::rabbitmq']
+      }
+      class { '::rabbitmq':
+        service_manage    => true,
+        port              => '5672',
+        management_port   => '11111',
+        delete_guest_user => true,
+        admin_enable      => true,
+      } ->
+
+      rabbitmq_user { 'dan':
+        admin    => true,
+        password => 'bar',
+        tags     => ['monitoring', 'tag1'],
+      } ->
+      
+      rabbitmq_user_permissions { 'dan@host2':
+        configure_permission => '.*',
+        read_permission      => '.*',
+        write_permission     => '.*',
+      }
+
+      rabbitmq_vhost { 'host2':
+        ensure => present,
+      } ->
+
+      rabbitmq_exchange { 'exchange2@host2':
+        user     => 'dan',
+        password => 'bar',
+        type     => 'topic',
+        ensure   => present,
+      } ->
+
+      rabbitmq_queue { 'queue2@host2':
+        user        => 'dan',
+        password    => 'bar',
+        durable     => true,
+        auto_delete => false,
+        ensure      => present,
+      } ->
+
+      rabbitmq_binding { 'exchange2@queue2@host2':
+        user             => 'dan',
+        password         => 'bar',
+        destination_type => 'queue',
+        routing_key      => '#',
+        ensure           => present,
+      }
+     
+      EOS
+
+      apply_manifest(pp, :catch_failures => true)
+      apply_manifest(pp, :catch_changes => true)
+    end
+
+    it 'should have the binding' do
+      shell('rabbitmqctl list_bindings -q -p host2') do |r|
+        expect(r.stdout).to match(/exchange2\sexchange\squeue2\squeue\s#/)
+        expect(r.exit_code).to be_zero
+      end
+    end
+    
+    it 'should have the queue' do
+      shell('rabbitmqctl list_queues -q -p host2') do |r|
+        expect(r.stdout).to match(/queue2/)
+        expect(r.exit_code).to be_zero
+      end
+    end
+
+  end
+  
+end