3 RSpec.configure do |config|
4 config.mock_with :mocha
6 provider_class = Puppet::Type.type(:rabbitmq_exchange).provider(:rabbitmqadmin)
7 describe provider_class do
9 @resource = Puppet::Type::Rabbitmq_exchange.new(
10 {:name => 'test.headers@/',
14 :auto_delete => :false,
16 "hash-headers" => "message-distribution-hash"
20 @provider = provider_class.new(@resource)
23 it 'should return instances' do
24 provider_class.expects(:rabbitmqctl).with('-q', 'list_vhosts').returns <<-EOT
27 provider_class.expects(:rabbitmqctl).with('-q', 'list_exchanges', '-p', '/', 'name', 'type', 'internal', 'durable', 'auto_delete', 'arguments').returns <<-EOT
28 direct false true false []
29 amq.direct direct false true false []
30 amq.fanout fanout false true false []
31 amq.headers headers false true false []
32 amq.match headers false true false []
33 amq.rabbitmq.log topic true true false []
34 amq.rabbitmq.trace topic true true false []
35 amq.topic topic false true false []
36 test.headers x-consistent-hash false true false [{"hash-header","message-distribution-hash"}]
38 instances = provider_class.instances
39 instances.size.should == 9
42 it 'should call rabbitmqadmin to create as guest' do
43 @provider.expects(:rabbitmqadmin).with('declare', 'exchange', '--vhost=/', '--user=guest', '--password=guest', 'name=test.headers', 'type=headers', 'internal=false', 'durable=true', 'auto_delete=false', 'arguments={"hash-headers":"message-distribution-hash"}', '-c', '/etc/rabbitmq/rabbitmqadmin.conf')
47 it 'should call rabbitmqadmin to destroy' do
48 @provider.expects(:rabbitmqadmin).with('delete', 'exchange', '--vhost=/', '--user=guest', '--password=guest', 'name=test.headers', '-c', '/etc/rabbitmq/rabbitmqadmin.conf')
52 context 'specifying credentials' do
54 @resource = Puppet::Type::Rabbitmq_exchange.new(
55 {:name => 'test.headers@/',
59 :auto_delete => 'false',
61 :password => 'secret',
63 "hash-header" => "message-distribution-hash"
67 @provider = provider_class.new(@resource)
70 it 'should call rabbitmqadmin to create with credentials' do
71 @provider.expects(:rabbitmqadmin).with('declare', 'exchange', '--vhost=/', '--user=colin', '--password=secret', 'name=test.headers', 'type=headers', 'internal=false', 'durable=true', 'auto_delete=false', 'arguments={"hash-header":"message-distribution-hash"}', '-c', '/etc/rabbitmq/rabbitmqadmin.conf')