Update rabbitmq module
[mirror/dsa-puppet.git] / 3rdparty / modules / rabbitmq / spec / unit / puppet / type / rabbitmq_parameter_spec.rb
1 require 'spec_helper'
2 describe Puppet::Type.type(:rabbitmq_parameter) do
3   let(:parameter) do
4     Puppet::Type.type(:rabbitmq_parameter).new(
5       name: 'documentumShovel@/',
6       component_name: 'shovel',
7       value: {
8         'src-uri' => 'amqp://myremote-server',
9         'src-queue' => 'queue.docs.outgoing',
10         'dest-uri' => 'amqp://',
11         'dest-queue' => 'queue.docs.incoming'
12       }
13     )
14   end
15
16   it 'accepts a valid name' do
17     parameter[:name] = 'documentumShovel@/'
18     expect(parameter[:name]).to eq('documentumShovel@/')
19   end
20
21   it 'requires a name' do
22     expect do
23       Puppet::Type.type(:rabbitmq_parameter).new({})
24     end.to raise_error(Puppet::Error, 'Title or name must be provided')
25   end
26
27   it 'fails when name does not have a @' do
28     expect do
29       parameter[:name] = 'documentumShovel'
30     end.to raise_error(Puppet::Error, %r{Valid values match})
31   end
32
33   it 'accepts a string' do
34     parameter[:component_name] = 'mystring'
35     expect(parameter[:component_name]).to eq('mystring')
36   end
37
38   it 'is not empty' do
39     expect do
40       parameter[:component_name] = ''
41     end.to raise_error(Puppet::Error, %r{component_name must be defined})
42   end
43
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)
48   end
49
50   it 'does not accept an empty string for definition' do
51     expect do
52       parameter[:value] = ''
53     end.to raise_error(Puppet::Error, %r{Invalid value})
54   end
55
56   it 'does not accept a string for definition' do
57     expect do
58       parameter[:value] = 'guest'
59     end.to raise_error(Puppet::Error, %r{Invalid value})
60   end
61
62   it 'does not accept an array for definition' do
63     expect do
64       parameter[:value] = { 'message-ttl' => %w[999 100] }
65     end.to raise_error(Puppet::Error, %r{Invalid value})
66   end
67
68   it 'accepts string as myparameter' do
69     value = { 'myparameter' => 'mystring' }
70     parameter[:value] = value
71     expect(parameter[:value]['myparameter']).to eq('mystring')
72   end
73
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)
78   end
79 end