]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/stdlib/spec/functions/validate_ipv6_address_spec.rb
upgrade to stdlib 4.6.1
[dsa-puppet.git] / 3rdparty / modules / stdlib / spec / functions / validate_ipv6_address_spec.rb
1 #! /usr/bin/env ruby -S rspec
2
3 require "spec_helper"
4
5 describe Puppet::Parser::Functions.function(:validate_ipv6_address) do
6   let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
7
8   describe "when calling validate_ipv6_address from puppet" do
9     describe "when given IPv6 address strings" do
10       it "should compile with one argument" do
11         Puppet[:code] = "validate_ipv6_address('3ffe:0505:0002::')"
12         scope.compiler.compile
13       end
14
15       it "should compile with multiple arguments" do
16         Puppet[:code] = "validate_ipv6_address('3ffe:0505:0002::', '3ffe:0505:0001::')"
17         scope.compiler.compile
18       end
19     end
20
21     describe "when given an ipv4 address" do
22       it "should not compile" do
23         Puppet[:code] = "validate_ipv6_address('1.2.3.4')"
24         expect {
25           scope.compiler.compile
26         }.to raise_error(Puppet::ParseError, /not a valid IPv6 address/)
27       end
28     end
29
30     describe "when given other strings" do
31       it "should not compile" do
32         Puppet[:code] = "validate_ipv6_address('hello', 'world')"
33         expect {
34           scope.compiler.compile
35         }.to raise_error(Puppet::ParseError, /not a valid IPv6 address/)
36       end
37     end
38
39     # 1.8.7 is EOL'd and also absolutely insane about ipv6
40     unless RUBY_VERSION == '1.8.7'
41       describe "when given numbers" do
42         it "should not compile" do
43           Puppet[:code] = "validate_ipv6_address(1, 2)"
44           expect {
45             scope.compiler.compile
46           }.to raise_error(Puppet::ParseError, /not a valid IPv6 address/)
47         end
48       end
49     end
50
51     describe "when given booleans" do
52       it "should not compile" do
53         Puppet[:code] = "validate_ipv6_address(true, false)"
54         expect {
55           scope.compiler.compile
56         }.to raise_error(Puppet::ParseError, /is not a string/)
57       end
58     end
59
60     it "should not compile when no arguments are passed" do
61       Puppet[:code] = "validate_ipv6_address()"
62       expect {
63         scope.compiler.compile
64       }.to raise_error(Puppet::ParseError, /wrong number of arguments/)
65     end
66   end
67 end