2 describe Puppet::Type.type(:rabbitmq_parameter) do
4 Puppet::Type.type(:rabbitmq_parameter).new(
5 name: 'documentumShovel@/',
6 component_name: 'shovel',
8 'src-uri' => 'amqp://myremote-server',
9 'src-queue' => 'queue.docs.outgoing',
10 'dest-uri' => 'amqp://',
11 'dest-queue' => 'queue.docs.incoming'
16 it 'accepts a valid name' do
17 parameter[:name] = 'documentumShovel@/'
18 expect(parameter[:name]).to eq('documentumShovel@/')
21 it 'requires a name' do
23 Puppet::Type.type(:rabbitmq_parameter).new({})
24 end.to raise_error(Puppet::Error, 'Title or name must be provided')
27 it 'fails when name does not have a @' do
29 parameter[:name] = 'documentumShovel'
30 end.to raise_error(Puppet::Error, %r{Valid values match})
33 it 'accepts a string' do
34 parameter[:component_name] = 'mystring'
35 expect(parameter[:component_name]).to eq('mystring')
40 parameter[:component_name] = ''
41 end.to raise_error(Puppet::Error, %r{component_name must be defined})
44 it 'accepts a valid hash for value' do
45 value = { 'message-ttl' => '1800000' }
46 parameter[:value] = value
47 expect(parameter[:value]).to eq(value)
50 it 'does not accept an empty string for definition' do
52 parameter[:value] = ''
53 end.to raise_error(Puppet::Error, %r{Invalid value})
56 it 'does not accept a string for definition' do
58 parameter[:value] = 'guest'
59 end.to raise_error(Puppet::Error, %r{Invalid value})
62 it 'does not accept an array for definition' do
64 parameter[:value] = { 'message-ttl' => %w[999 100] }
65 end.to raise_error(Puppet::Error, %r{Invalid value})
68 it 'accepts string as myparameter' do
69 value = { 'myparameter' => 'mystring' }
70 parameter[:value] = value
71 expect(parameter[:value]['myparameter']).to eq('mystring')
74 it 'converts to integer when string only contains numbers' do
75 value = { 'myparameter' => '1800000' }
76 parameter[:value] = value
77 expect(parameter[:value]['myparameter']).to eq(1_800_000)