1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
require 'test_helper'
require 'net/dns/rr'
class RRClassesTest < Minitest::Test
def setup
@classes = {}
@regexp_string = "ANY|CH|HS|IN|NONE"
end
StrAndNum = [
['IN', 1],
['CH', 3],
['HS', 4],
['NONE', 254],
['ANY', 255],
].freeze
StrAndNum.each do |str, num|
define_method "test_initialize_from_str_#{str}" do
instance = Net::DNS::RR::Classes.new(str)
assert_equal str, instance.to_s
assert_equal num, instance.to_i
end
define_method "test_initialize_from_num_#{num}" do
instance = Net::DNS::RR::Classes.new(num)
assert_equal str, instance.to_s
assert_equal num, instance.to_i
end
end
def test_initialize_should_raise_with_invalid_class
assert_raises(ArgumentError) { Net::DNS::RR::Classes.new({}) }
end
def test_inspect
assert_equal 1, Net::DNS::RR::Classes.new(1).inspect
assert_equal 1, Net::DNS::RR::Classes.new("IN").inspect
end
def test_to_s
assert_equal "IN", Net::DNS::RR::Classes.new(1).to_s
assert_equal "IN", Net::DNS::RR::Classes.new("IN").to_s
end
def test_to_i
assert_equal 1, Net::DNS::RR::Classes.new(1).to_i
assert_equal 1, Net::DNS::RR::Classes.new("IN").to_i
end
def test_self_default
@_default = Net::DNS::RR::Classes.default
# Default type should be ANY => 255
instance = Net::DNS::RR::Classes.new(nil)
assert_equal 1, instance.to_i
assert_equal "IN", instance.to_s
# Let's change default behaviour
Net::DNS::RR::Classes.default = "CH"
instance = Net::DNS::RR::Classes.new(nil)
assert_equal 3, instance.to_i
assert_equal "CH", instance.to_s
Net::DNS::RR::Classes.default = "IN"
instance = Net::DNS::RR::Classes.new(nil)
assert_equal 1, instance.to_i
assert_equal "IN", instance.to_s
ensure
Net::DNS::RR::Classes.default = Net::DNS::RR::Classes::CLASSES.invert[@_default]
end
def test_self_valid?
assert Net::DNS::RR::Classes.valid?("IN")
assert Net::DNS::RR::Classes.valid?(1)
assert !Net::DNS::RR::Classes.valid?("Q")
assert !Net::DNS::RR::Classes.valid?(256)
assert_raises(ArgumentError) { Net::DNS::RR::Classes.valid?({}) }
end
def test_self_regexp
assert_equal @regexp_string, Net::DNS::RR::Classes.regexp
end
end
|