PageRenderTime 43ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/spec/functions/validate_ipv6_address_spec.rb

https://github.com/hunner/puppetlabs-stdlib
Ruby | 67 lines | 56 code | 9 blank | 2 comment | 1 complexity | 2d8617be4405bdbd84d140ba8be6c184 MD5 | raw file
Possible License(s): Apache-2.0
  1. #! /usr/bin/env ruby -S rspec
  2. require "spec_helper"
  3. describe Puppet::Parser::Functions.function(:validate_ipv6_address) do
  4. let(:scope) { PuppetlabsSpec::PuppetInternals.scope }
  5. describe "when calling validate_ipv6_address from puppet" do
  6. describe "when given IPv6 address strings" do
  7. it "should compile with one argument" do
  8. Puppet[:code] = "validate_ipv6_address('3ffe:0505:0002::')"
  9. scope.compiler.compile
  10. end
  11. it "should compile with multiple arguments" do
  12. Puppet[:code] = "validate_ipv6_address('3ffe:0505:0002::', '3ffe:0505:0001::')"
  13. scope.compiler.compile
  14. end
  15. end
  16. describe "when given an ipv4 address" do
  17. it "should not compile" do
  18. Puppet[:code] = "validate_ipv6_address('1.2.3.4')"
  19. expect {
  20. scope.compiler.compile
  21. }.to raise_error(Puppet::ParseError, /not a valid IPv6 address/)
  22. end
  23. end
  24. describe "when given other strings" do
  25. it "should not compile" do
  26. Puppet[:code] = "validate_ipv6_address('hello', 'world')"
  27. expect {
  28. scope.compiler.compile
  29. }.to raise_error(Puppet::ParseError, /not a valid IPv6 address/)
  30. end
  31. end
  32. # 1.8.7 is EOL'd and also absolutely insane about ipv6
  33. unless RUBY_VERSION == '1.8.7'
  34. describe "when given numbers" do
  35. it "should not compile" do
  36. Puppet[:code] = "validate_ipv6_address(1, 2)"
  37. expect {
  38. scope.compiler.compile
  39. }.to raise_error(Puppet::ParseError, /not a valid IPv6 address/)
  40. end
  41. end
  42. end
  43. describe "when given booleans" do
  44. it "should not compile" do
  45. Puppet[:code] = "validate_ipv6_address(true, false)"
  46. expect {
  47. scope.compiler.compile
  48. }.to raise_error(Puppet::ParseError, /is not a string/)
  49. end
  50. end
  51. it "should not compile when no arguments are passed" do
  52. Puppet[:code] = "validate_ipv6_address()"
  53. expect {
  54. scope.compiler.compile
  55. }.to raise_error(Puppet::ParseError, /wrong number of arguments/)
  56. end
  57. end
  58. end