X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Frabbitmq%2Fspec%2Facceptance%2Fqueue_spec.rb;fp=3rdparty%2Fmodules%2Frabbitmq%2Fspec%2Facceptance%2Fqueue_spec.rb;h=a5ed1d10905f7068e77594c2395cec1529303d19;hb=921e69100a563cf143f56a3905d8362336d939ff;hp=a1643a6324ed3f1062c8326b91f65df2921c9a03;hpb=b54f52d2899c5785923c804fdfbba0782c147da4;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/rabbitmq/spec/acceptance/queue_spec.rb b/3rdparty/modules/rabbitmq/spec/acceptance/queue_spec.rb index a1643a632..a5ed1d109 100644 --- a/3rdparty/modules/rabbitmq/spec/acceptance/queue_spec.rb +++ b/3rdparty/modules/rabbitmq/spec/acceptance/queue_spec.rb @@ -1,18 +1,16 @@ 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 + context 'create binding and queue resources when using default management port' do + it 'runs successfully' do pp = <<-EOS - if $::osfamily == 'RedHat' { + if $facts['os']['family'] == 'RedHat' { class { 'erlang': epel_enable => true } - Class['erlang'] -> Class['::rabbitmq'] + Class['erlang'] -> Class['rabbitmq'] } - class { '::rabbitmq': + class { 'rabbitmq': service_manage => true, - port => '5672', + port => 5672, delete_guest_user => true, admin_enable => true, } -> @@ -22,7 +20,7 @@ describe 'rabbitmq binding:' do password => 'bar', tags => ['monitoring', 'tag1'], } -> - + rabbitmq_user_permissions { 'dan@host1': configure_permission => '.*', read_permission => '.*', @@ -55,40 +53,131 @@ describe 'rabbitmq binding:' do routing_key => '#', ensure => present, } - + EOS - apply_manifest(pp, :catch_failures => true) - apply_manifest(pp, :catch_changes => true) + apply_manifest(pp, catch_failures: true) + apply_manifest(pp, catch_changes: true) end - it 'should have the binding' do + # rubocop:disable RSpec/MultipleExpectations + it 'has the binding' do shell('rabbitmqctl list_bindings -q -p host1') do |r| - expect(r.stdout).to match(/exchange1\sexchange\squeue1\squeue\s#/) + expect(r.stdout).to match(%r{exchange1\sexchange\squeue1\squeue\s#}) expect(r.exit_code).to be_zero end end - - it 'should have the queue' do + + it 'has the queue' do shell('rabbitmqctl list_queues -q -p host1') do |r| - expect(r.stdout).to match(/queue1/) + expect(r.stdout).to match(%r{queue1}) expect(r.exit_code).to be_zero end end + # rubocop:enable RSpec/MultipleExpectations + end + + context 'create multiple bindings when same source / destination / vhost but different routing keys' do + it 'runs successfully' do + pp = <<-EOS + if $facts['os']['family'] == '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 { 'binding 1': + source => 'exchange1', + destination => 'queue1', + user => 'dan', + vhost => 'host1', + password => 'bar', + destination_type => 'queue', + routing_key => 'test1', + ensure => present, + } -> + + rabbitmq_binding { 'binding 2': + source => 'exchange1', + destination => 'queue1', + user => 'dan', + vhost => 'host1', + password => 'bar', + destination_type => 'queue', + routing_key => 'test2', + ensure => present, + } + + EOS + + apply_manifest(pp, catch_failures: true) + apply_manifest(pp, catch_changes: true) + end + + # rubocop:disable RSpec/MultipleExpectations + it 'has the bindings' do + shell('rabbitmqctl list_bindings -q -p host1') do |r| + expect(r.stdout).to match(%r{exchange1\sexchange\squeue1\squeue\stest1}) + expect(r.stdout).to match(%r{exchange1\sexchange\squeue1\squeue\stest2}) + expect(r.exit_code).to be_zero + end + end + # rubocop:enable RSpec/MultipleExpectations + + it 'puppet resource shows a binding' do + shell('puppet resource rabbitmq_binding') do |r| + expect(r.stdout).to match(%r{source\s+=>\s+'exchange1',}) + end + end end - - context "create binding and queue resources when rabbit using a non-default management port" do - it 'should run successfully' do + + context 'create binding and queue resources when using a non-default management port' do + it 'runs successfully' do pp = <<-EOS - if $::osfamily == 'RedHat' { + if $facts['os']['family'] == 'RedHat' { class { 'erlang': epel_enable => true } - Class['erlang'] -> Class['::rabbitmq'] + Class['erlang'] -> Class['rabbitmq'] } - class { '::rabbitmq': + class { 'rabbitmq': service_manage => true, - port => '5672', - management_port => '11111', + port => 5672, + management_port => 11111, delete_guest_user => true, admin_enable => true, } -> @@ -98,7 +187,7 @@ describe 'rabbitmq binding:' do password => 'bar', tags => ['monitoring', 'tag1'], } -> - + rabbitmq_user_permissions { 'dan@host2': configure_permission => '.*', read_permission => '.*', @@ -131,27 +220,27 @@ describe 'rabbitmq binding:' do routing_key => '#', ensure => present, } - + EOS - apply_manifest(pp, :catch_failures => true) - apply_manifest(pp, :catch_changes => true) + apply_manifest(pp, catch_failures: true) + apply_manifest(pp, catch_changes: true) end - it 'should have the binding' do + # rubocop:disable RSpec/MultipleExpectations + it 'has the binding' do shell('rabbitmqctl list_bindings -q -p host2') do |r| - expect(r.stdout).to match(/exchange2\sexchange\squeue2\squeue\s#/) + expect(r.stdout).to match(%r{exchange2\sexchange\squeue2\squeue\s#}) expect(r.exit_code).to be_zero end end - - it 'should have the queue' do + + it 'has the queue' do shell('rabbitmqctl list_queues -q -p host2') do |r| - expect(r.stdout).to match(/queue2/) + expect(r.stdout).to match(%r{queue2}) expect(r.exit_code).to be_zero end end - + # rubocop:enable RSpec/MultipleExpectations end - end