1 #! /usr/bin/env ruby -S rspec
5 describe Puppet::Parser::Functions.function(:validate_ipv4_address) do
6 let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
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
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
21 describe "when given an IPv6 address" do
22 it "should not compile" do
23 Puppet[:code] = "validate_ipv4_address('3ffe:505')"
25 scope.compiler.compile
26 }.to raise_error(Puppet::ParseError, /not a valid IPv4 address/)
30 describe "when given other strings" do
31 it "should not compile" do
32 Puppet[:code] = "validate_ipv4_address('hello', 'world')"
34 scope.compiler.compile
35 }.to raise_error(Puppet::ParseError, /not a valid IPv4 address/)
39 describe "when given numbers" do
40 it "should not compile" do
41 Puppet[:code] = "validate_ipv4_address(1, 2)"
43 scope.compiler.compile
44 }.to raise_error(Puppet::ParseError, /is not a valid IPv4 address/)
48 describe "when given booleans" do
49 it "should not compile" do
50 Puppet[:code] = "validate_ipv4_address(true, false)"
52 scope.compiler.compile
53 }.to raise_error(Puppet::ParseError, /is not a string/)
57 it "should not compile when no arguments are passed" do
58 Puppet[:code] = "validate_ipv4_address()"
60 scope.compiler.compile
61 }.to raise_error(Puppet::ParseError, /wrong number of arguments/)