Update puppetlabs/stdlib module
[mirror/dsa-puppet.git] / 3rdparty / modules / stdlib / spec / unit / puppet / parser / functions / enclose_ipv6_spec.rb
1 require 'spec_helper'
2
3 describe 'the enclose_ipv6 function' do
4   let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
5
6   it 'exists' do
7     expect(Puppet::Parser::Functions.function('enclose_ipv6')).to eq('function_enclose_ipv6')
8   end
9
10   it 'raises a ParseError if there is less than 1 arguments' do
11     expect { scope.function_enclose_ipv6([]) }.to(raise_error(Puppet::ParseError))
12   end
13
14   it 'raises a ParseError if there is more than 1 arguments' do
15     expect { scope.function_enclose_ipv6(['argument1', 'argument2']) }.to(raise_error(Puppet::ParseError))
16   end
17
18   it 'raises a ParseError when given garbage' do
19     expect { scope.function_enclose_ipv6(['garbage']) }.to(raise_error(Puppet::ParseError))
20   end
21
22   it 'raises a ParseError when given something else than a string or an array' do
23     expect { scope.function_enclose_ipv6([['1' => '127.0.0.1']]) }.to(raise_error(Puppet::ParseError))
24   end
25
26   it 'does not raise a ParseError when given a single ip string' do
27     expect { scope.function_enclose_ipv6(['127.0.0.1']) }.not_to raise_error
28   end
29
30   it 'does not raise a ParseError when given * as ip string' do
31     expect { scope.function_enclose_ipv6(['*']) }.not_to raise_error
32   end
33
34   it 'does not raise a ParseError when given an array of ip strings' do
35     expect { scope.function_enclose_ipv6([['127.0.0.1', 'fe80::1']]) }.not_to raise_error
36   end
37
38   it 'does not raise a ParseError when given differently notations of ip addresses' do
39     expect { scope.function_enclose_ipv6([['127.0.0.1', 'fe80::1', '[fe80::1]']]) }.not_to raise_error
40   end
41
42   it 'raises a ParseError when given a wrong ipv4 address' do
43     expect { scope.function_enclose_ipv6(['127..0.0.1']) }.to(raise_error(Puppet::ParseError))
44   end
45
46   it 'raises a ParseError when given a ipv4 address with square brackets' do
47     expect { scope.function_enclose_ipv6(['[127.0.0.1]']) }.to(raise_error(Puppet::ParseError))
48   end
49
50   it 'raises a ParseError when given a wrong ipv6 address' do
51     expect { scope.function_enclose_ipv6(['fe80:::1']) }.to(raise_error(Puppet::ParseError))
52   end
53
54   it 'embraces ipv6 adresses within an array of ip addresses' do
55     result = scope.function_enclose_ipv6([['127.0.0.1', 'fe80::1', '[fe80::2]']])
56     expect(result).to(eq(['127.0.0.1', '[fe80::1]', '[fe80::2]']))
57   end
58
59   it 'embraces a single ipv6 adresse' do
60     result = scope.function_enclose_ipv6(['fe80::1'])
61     expect(result).to(eq(['[fe80::1]']))
62   end
63
64   it 'does not embrace a single ipv4 adresse' do
65     result = scope.function_enclose_ipv6(['127.0.0.1'])
66     expect(result).to(eq(['127.0.0.1']))
67   end
68 end