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