dns-zone2 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +2 -0
  3. data/HISTORY.md +45 -0
  4. data/README.md +151 -0
  5. data/Rakefile +15 -0
  6. data/dns-zone2.gemspec +41 -0
  7. data/lib/dns/zone.rb +207 -0
  8. data/lib/dns/zone/rr.rb +87 -0
  9. data/lib/dns/zone/rr/a.rb +21 -0
  10. data/lib/dns/zone/rr/aaaa.rb +5 -0
  11. data/lib/dns/zone/rr/cdnskey.rb +5 -0
  12. data/lib/dns/zone/rr/cds.rb +5 -0
  13. data/lib/dns/zone/rr/cname.rb +21 -0
  14. data/lib/dns/zone/rr/dlv.rb +5 -0
  15. data/lib/dns/zone/rr/dnskey.rb +38 -0
  16. data/lib/dns/zone/rr/ds.rb +38 -0
  17. data/lib/dns/zone/rr/hinfo.rb +31 -0
  18. data/lib/dns/zone/rr/mx.rb +33 -0
  19. data/lib/dns/zone/rr/naptr.rb +44 -0
  20. data/lib/dns/zone/rr/ns.rb +21 -0
  21. data/lib/dns/zone/rr/nsec.rb +32 -0
  22. data/lib/dns/zone/rr/nsec3.rb +45 -0
  23. data/lib/dns/zone/rr/nsec3param.rb +38 -0
  24. data/lib/dns/zone/rr/ptr.rb +21 -0
  25. data/lib/dns/zone/rr/record.rb +88 -0
  26. data/lib/dns/zone/rr/rrsig.rb +54 -0
  27. data/lib/dns/zone/rr/soa.rb +51 -0
  28. data/lib/dns/zone/rr/spf.rb +5 -0
  29. data/lib/dns/zone/rr/srv.rb +38 -0
  30. data/lib/dns/zone/rr/sshfp.rb +35 -0
  31. data/lib/dns/zone/rr/txt.rb +24 -0
  32. data/lib/dns/zone/test_case.rb +27 -0
  33. data/lib/dns/zone/version.rb +6 -0
  34. data/test/rr/a_test.rb +37 -0
  35. data/test/rr/aaaa_test.rb +27 -0
  36. data/test/rr/cdnskey_test.rb +31 -0
  37. data/test/rr/cds_test.rb +28 -0
  38. data/test/rr/cname_test.rb +19 -0
  39. data/test/rr/dlv_test.rb +28 -0
  40. data/test/rr/dnskey_test.rb +31 -0
  41. data/test/rr/ds_test.rb +28 -0
  42. data/test/rr/hinfo_test.rb +44 -0
  43. data/test/rr/mx_test.rb +26 -0
  44. data/test/rr/naptr_test.rb +60 -0
  45. data/test/rr/ns_test.rb +18 -0
  46. data/test/rr/nsec3_test.rb +33 -0
  47. data/test/rr/nsec3param_test.rb +29 -0
  48. data/test/rr/nsec_test.rb +24 -0
  49. data/test/rr/ptr_test.rb +19 -0
  50. data/test/rr/record_test.rb +37 -0
  51. data/test/rr/rrsig_test.rb +40 -0
  52. data/test/rr/soa_test.rb +34 -0
  53. data/test/rr/spf_test.rb +20 -0
  54. data/test/rr/srv_test.rb +24 -0
  55. data/test/rr/sshfp_test.rb +24 -0
  56. data/test/rr/txt_test.rb +44 -0
  57. data/test/rr_test.rb +50 -0
  58. data/test/version_test.rb +9 -0
  59. data/test/zone_test.rb +273 -0
  60. metadata +217 -0
@@ -0,0 +1,31 @@
1
+ require 'dns/zone/test_case'
2
+
3
+ class RR_CDNSKEY_Test < DNS::Zone::TestCase
4
+
5
+ # FIXME (lantins): algorithm can be integer _or_ mnemonic!
6
+
7
+ TEST_KEY = 'AQPSKmynfzW4kyBv015MUG2DeIQ3Cbl+BBZH4b/0PY1kxkmvHjcZc8nokfzj31GajIQKY+5CptLr3buXA10hWqTkF7H6RfoRqXQeogmMHfpftf6zMv1LyBUgia7za6ZEzOJBOztyvhjL742iU/TpPSEDhm2SNKLijfUppn1UaNvv4w=='
8
+
9
+ def test_build_rr__cdnskey
10
+ rr = DNS::Zone::RR::CDNSKEY.new
11
+ rr.label = 'example.com.'
12
+ rr.ttl = 86400
13
+ rr.flags = 256
14
+ rr.protocol = 3
15
+ rr.algorithm = 5
16
+ rr.key = TEST_KEY
17
+
18
+ assert_equal "example.com. 86400 IN CDNSKEY 256 3 5 #{TEST_KEY}", rr.dump
19
+ end
20
+
21
+ def test_load_rr__cdnskey
22
+ rr = DNS::Zone::RR::CDNSKEY.new.load("example.com. IN CDNSKEY 256 3 5 #{TEST_KEY}")
23
+ assert_equal 'example.com.', rr.label
24
+ assert_equal 'CDNSKEY', rr.type
25
+ assert_equal 256, rr.flags
26
+ assert_equal 3, rr.protocol
27
+ assert_equal 5, rr.algorithm
28
+ assert_equal TEST_KEY, rr.key
29
+ end
30
+
31
+ end
@@ -0,0 +1,28 @@
1
+ require 'dns/zone/test_case'
2
+
3
+ class RR_CDS_Test < DNS::Zone::TestCase
4
+
5
+ TEST_DIGEST = '2BB183AF5F22588179A53B0A98631FAD1A292118'
6
+
7
+ def test_build_rr__cds
8
+ rr = DNS::Zone::RR::CDS.new
9
+ rr.label = 'dskey.example.com.'
10
+ rr.key_tag = 60485
11
+ rr.algorithm = 5
12
+ rr.digest_type = 1
13
+ rr.digest = TEST_DIGEST
14
+
15
+ assert_equal "dskey.example.com. IN CDS 60485 5 1 #{TEST_DIGEST}", rr.dump
16
+ end
17
+
18
+ def test_load_rr__cds
19
+ rr = DNS::Zone::RR::CDS.new.load("dskey.example.com. IN CDS 60485 5 1 #{TEST_DIGEST}")
20
+ assert_equal 'dskey.example.com.', rr.label
21
+ assert_equal 'CDS', rr.type
22
+ assert_equal 60485, rr.key_tag
23
+ assert_equal 5, rr.algorithm
24
+ assert_equal 1, rr.digest_type
25
+ assert_equal TEST_DIGEST, rr.digest
26
+ end
27
+
28
+ end
@@ -0,0 +1,19 @@
1
+ require 'dns/zone/test_case'
2
+
3
+ class RR_CNAME_Test < DNS::Zone::TestCase
4
+
5
+ def test_build_rr__cname
6
+ rr = DNS::Zone::RR::CNAME.new
7
+ rr.label = 'google9d97d7f266ee521d'
8
+ rr.domainname = 'google.com.'
9
+ assert_equal 'google9d97d7f266ee521d IN CNAME google.com.', rr.dump
10
+ end
11
+
12
+ def test_load_rr__cname
13
+ rr = DNS::Zone::RR::CNAME.new.load('foo IN CNAME example.com.')
14
+ assert_equal 'foo', rr.label
15
+ assert_equal 'CNAME', rr.type
16
+ assert_equal 'example.com.', rr.domainname
17
+ end
18
+
19
+ end
@@ -0,0 +1,28 @@
1
+ require 'dns/zone/test_case'
2
+
3
+ class RR_DLV_Test < DNS::Zone::TestCase
4
+
5
+ TEST_DIGEST = '2BB183AF5F22588179A53B0A98631FAD1A292118'
6
+
7
+ def test_build_rr__dlv
8
+ rr = DNS::Zone::RR::DLV.new
9
+ rr.label = 'dlvtest.example.com.'
10
+ rr.key_tag = 60485
11
+ rr.algorithm = 5
12
+ rr.digest_type = 1
13
+ rr.digest = TEST_DIGEST
14
+
15
+ assert_equal "dlvtest.example.com. IN DLV 60485 5 1 #{TEST_DIGEST}", rr.dump
16
+ end
17
+
18
+ def test_load_rr__dlv
19
+ rr = DNS::Zone::RR::DLV.new.load("dlvtest.example.com. IN DLV 60485 5 1 #{TEST_DIGEST}")
20
+ assert_equal 'dlvtest.example.com.', rr.label
21
+ assert_equal 'DLV', rr.type
22
+ assert_equal 60485, rr.key_tag
23
+ assert_equal 5, rr.algorithm
24
+ assert_equal 1, rr.digest_type
25
+ assert_equal TEST_DIGEST, rr.digest
26
+ end
27
+
28
+ end
@@ -0,0 +1,31 @@
1
+ require 'dns/zone/test_case'
2
+
3
+ class RR_DNSKEY_Test < DNS::Zone::TestCase
4
+
5
+ # FIXME (lantins): algorithm can be integer _or_ mnemonic!
6
+
7
+ TEST_KEY = 'AQPSKmynfzW4kyBv015MUG2DeIQ3Cbl+BBZH4b/0PY1kxkmvHjcZc8nokfzj31GajIQKY+5CptLr3buXA10hWqTkF7H6RfoRqXQeogmMHfpftf6zMv1LyBUgia7za6ZEzOJBOztyvhjL742iU/TpPSEDhm2SNKLijfUppn1UaNvv4w=='
8
+
9
+ def test_build_rr__dnskey
10
+ rr = DNS::Zone::RR::DNSKEY.new
11
+ rr.label = 'example.com.'
12
+ rr.ttl = 86400
13
+ rr.flags = 256
14
+ rr.protocol = 3
15
+ rr.algorithm = 5
16
+ rr.key = TEST_KEY
17
+
18
+ assert_equal "example.com. 86400 IN DNSKEY 256 3 5 #{TEST_KEY}", rr.dump
19
+ end
20
+
21
+ def test_load_rr__dnskey
22
+ rr = DNS::Zone::RR::DNSKEY.new.load("example.com. IN DNSKEY 256 3 5 #{TEST_KEY}")
23
+ assert_equal 'example.com.', rr.label
24
+ assert_equal 'DNSKEY', rr.type
25
+ assert_equal 256, rr.flags
26
+ assert_equal 3, rr.protocol
27
+ assert_equal 5, rr.algorithm
28
+ assert_equal TEST_KEY, rr.key
29
+ end
30
+
31
+ end
@@ -0,0 +1,28 @@
1
+ require 'dns/zone/test_case'
2
+
3
+ class RR_DS_Test < DNS::Zone::TestCase
4
+
5
+ TEST_DIGEST = '2BB183AF5F22588179A53B0A98631FAD1A292118'
6
+
7
+ def test_build_rr__ds
8
+ rr = DNS::Zone::RR::DS.new
9
+ rr.label = 'dskey.example.com.'
10
+ rr.key_tag = 60485
11
+ rr.algorithm = 5
12
+ rr.digest_type = 1
13
+ rr.digest = TEST_DIGEST
14
+
15
+ assert_equal "dskey.example.com. IN DS 60485 5 1 #{TEST_DIGEST}", rr.dump
16
+ end
17
+
18
+ def test_load_rr__ds
19
+ rr = DNS::Zone::RR::DS.new.load("dskey.example.com. IN DS 60485 5 1 #{TEST_DIGEST}")
20
+ assert_equal 'dskey.example.com.', rr.label
21
+ assert_equal 'DS', rr.type
22
+ assert_equal 60485, rr.key_tag
23
+ assert_equal 5, rr.algorithm
24
+ assert_equal 1, rr.digest_type
25
+ assert_equal TEST_DIGEST, rr.digest
26
+ end
27
+
28
+ end
@@ -0,0 +1,44 @@
1
+ require 'dns/zone/test_case'
2
+
3
+ class RR_HINFO_Test < DNS::Zone::TestCase
4
+
5
+ def test_build_rr__hinfo
6
+ rr = DNS::Zone::RR::HINFO.new
7
+ rr.cpu = 'Intel'
8
+ rr.os = 'Ubuntu'
9
+ assert_equal '@ IN HINFO "Intel" "Ubuntu"', rr.dump
10
+ end
11
+
12
+ def test_build_with_spaces
13
+ rr = DNS::Zone::RR::HINFO.new
14
+ rr.label = 'ns0'
15
+ rr.cpu = 'PC Intel 700mhz'
16
+ rr.os = 'Ubuntu 12.04 LTS'
17
+ assert_equal 'ns0 IN HINFO "PC Intel 700mhz" "Ubuntu 12.04 LTS"', rr.dump
18
+ end
19
+
20
+ def test_load_rr__hinfo
21
+ rr = DNS::Zone::RR::HINFO.new.load('ns0 IN HINFO "Intel" "Ubuntu"')
22
+ assert_equal 'ns0', rr.label
23
+ assert_equal 'HINFO', rr.type
24
+ assert_equal 'Intel', rr.cpu
25
+ assert_equal 'Ubuntu', rr.os
26
+ end
27
+
28
+ def test_load_with_spaces
29
+ rr = DNS::Zone::RR::HINFO.new.load('ns0 IN HINFO "PC Intel 700mhz" "Ubuntu 12.04 LTS"')
30
+ assert_equal 'PC Intel 700mhz', rr.cpu
31
+ assert_equal 'Ubuntu 12.04 LTS', rr.os
32
+ end
33
+
34
+ def test_load_mixed_quotes
35
+ rr = DNS::Zone::RR::HINFO.new.load('ns0 IN HINFO Intel "Ubuntu 12.04"')
36
+ assert_equal 'Intel', rr.cpu
37
+ assert_equal 'Ubuntu 12.04', rr.os
38
+
39
+ rr = DNS::Zone::RR::HINFO.new.load('ns0 IN HINFO "PC Intel" Ubuntu')
40
+ assert_equal 'PC Intel', rr.cpu
41
+ assert_equal 'Ubuntu', rr.os
42
+ end
43
+
44
+ end
@@ -0,0 +1,26 @@
1
+ require 'dns/zone/test_case'
2
+
3
+ class RR_MX_Test < DNS::Zone::TestCase
4
+
5
+ def test_build_rr__mx
6
+ rr = DNS::Zone::RR::MX.new
7
+
8
+ # ensure we can set priority and exchange parameter
9
+ rr.priority = 10
10
+ rr.exchange = 'mx0.lividpenguin.com.'
11
+ assert_equal '@ IN MX 10 mx0.lividpenguin.com.', rr.dump
12
+
13
+ rr.priority = 20
14
+ rr.exchange = 'mx1.lividpenguin.com.'
15
+ assert_equal '@ IN MX 20 mx1.lividpenguin.com.', rr.dump
16
+ end
17
+
18
+ def test_load_rr__mx
19
+ rr = DNS::Zone::RR::MX.new.load('@ IN MX 20 mx1.lividpenguin.com.')
20
+ assert_equal '@', rr.label
21
+ assert_equal 'MX', rr.type
22
+ assert_equal 20, rr.priority
23
+ assert_equal 'mx1.lividpenguin.com.', rr.exchange
24
+ end
25
+
26
+ end
@@ -0,0 +1,60 @@
1
+ require 'dns/zone/test_case'
2
+
3
+ class RR_NAPTR_Test < DNS::Zone::TestCase
4
+
5
+ def test_build_rr__naptr
6
+ rr = DNS::Zone::RR::NAPTR.new
7
+ rr.order = 100
8
+ rr.pref = 10
9
+ rr.flags = ''
10
+ rr.service = ''
11
+ rr.regexp = '!^urn:cid:.+@([^\.]+\.)(.*)$!\2!i'
12
+ rr.replacement = '.'
13
+
14
+ assert_equal '@ IN NAPTR 100 10 "" "" "!^urn:cid:.+@([^\.]+\.)(.*)$!\2!i" .', rr.dump
15
+ end
16
+
17
+ def test_load_rr__naptr
18
+ rr = DNS::Zone::RR::NAPTR.new.load('@ IN NAPTR 100 10 "" "" "!^urn:cid:.+@([^\.]+\.)(.*)$!\2!i" .')
19
+ assert_equal '@', rr.label
20
+ assert_equal 'NAPTR', rr.type
21
+ assert_equal 100, rr.order
22
+ assert_equal 10, rr.pref
23
+ assert_equal '', rr.flags
24
+ assert_equal '', rr.service
25
+ assert_equal '!^urn:cid:.+@([^\\.]+\\.)(.*)$!\\2!i', rr.regexp
26
+ assert_equal '.', rr.replacement
27
+
28
+ rr = DNS::Zone::RR::NAPTR.new.load('example.com. IN NAPTR 100 50 "a" "z3950+N2L+N2C" "" cidserver.example.com.')
29
+ assert_equal 'example.com.', rr.label
30
+ assert_equal 'NAPTR', rr.type
31
+ assert_equal 100, rr.order
32
+ assert_equal 50, rr.pref
33
+ assert_equal 'a', rr.flags
34
+ assert_equal 'z3950+N2L+N2C', rr.service
35
+ assert_equal '', rr.regexp
36
+ assert_equal 'cidserver.example.com.', rr.replacement
37
+
38
+ rr = DNS::Zone::RR::NAPTR.new.load('example.com. IN NAPTR 100 60 "a" "rcds+N2C" "" cidserver.example.com.')
39
+ assert_equal 'example.com.', rr.label
40
+ assert_equal 'NAPTR', rr.type
41
+ assert_equal 100, rr.order
42
+ assert_equal 60, rr.pref
43
+ assert_equal 'a', rr.flags
44
+ assert_equal 'rcds+N2C', rr.service
45
+ assert_equal '', rr.regexp
46
+ assert_equal 'cidserver.example.com.', rr.replacement
47
+
48
+ rr = DNS::Zone::RR::NAPTR.new.load('example.com. IN NAPTR 300 50 "b" "http+N2L+N2C+N2R" "" www.example.com.')
49
+ assert_equal 'example.com.', rr.label
50
+ assert_equal 'NAPTR', rr.type
51
+ assert_equal 300, rr.order
52
+ assert_equal 50, rr.pref
53
+ assert_equal 'b', rr.flags
54
+ assert_equal 'http+N2L+N2C+N2R', rr.service
55
+ assert_equal '', rr.regexp
56
+ assert_equal 'www.example.com.', rr.replacement
57
+
58
+ end
59
+
60
+ end
@@ -0,0 +1,18 @@
1
+ require 'dns/zone/test_case'
2
+
3
+ class RR_NS_Test < DNS::Zone::TestCase
4
+
5
+ def test_build_rr__ns
6
+ rr = DNS::Zone::RR::NS.new
7
+ rr.nameserver = 'ns0.lividpenguin.com.'
8
+ assert_equal '@ IN NS ns0.lividpenguin.com.', rr.dump
9
+ end
10
+
11
+ def test_load_rr__ns
12
+ rr = DNS::Zone::RR::NS.new.load('@ IN NS ns0.lividpenguin.com.')
13
+ assert_equal '@', rr.label
14
+ assert_equal 'NS', rr.type
15
+ assert_equal 'ns0.lividpenguin.com.', rr.nameserver
16
+ end
17
+
18
+ end
@@ -0,0 +1,33 @@
1
+ require 'dns/zone/test_case'
2
+
3
+ class RR_NSEC3_Test < DNS::Zone::TestCase
4
+
5
+ def test_build_rr__nsec3
6
+ rr = DNS::Zone::RR::NSEC3.new
7
+ rr.label = 'foo.example.com.'
8
+
9
+ rr.algorithm = 1
10
+ rr.flags = 0
11
+ rr.iterations = 12
12
+ rr.salt = 'aabbccdd'
13
+ rr.next_hashed_owner_name = 'ji6neoaepv8b5o6k4ev33abha8ht9fgc'
14
+ rr.rrset_types = 'A AAAA'
15
+
16
+ assert_equal "foo.example.com. IN NSEC3 1 0 12 aabbccdd ji6neoaepv8b5o6k4ev33abha8ht9fgc A AAAA", rr.dump
17
+
18
+ end
19
+
20
+ def test_load_rr__nsec3
21
+ rr = DNS::Zone::RR::NSEC3.new.load("foo.example.com. IN NSEC3 1 0 12 aabbccdd ji6neoaepv8b5o6k4ev33abha8ht9fgc A AAAA")
22
+ assert_equal 'foo.example.com.', rr.label
23
+ assert_equal 'NSEC3', rr.type
24
+
25
+ assert_equal 1, rr.algorithm
26
+ assert_equal 0, rr.flags
27
+ assert_equal 12, rr.iterations
28
+ assert_equal 'aabbccdd', rr.salt
29
+ assert_equal 'ji6neoaepv8b5o6k4ev33abha8ht9fgc', rr.next_hashed_owner_name
30
+ assert_equal 'A AAAA', rr.rrset_types
31
+ end
32
+
33
+ end
@@ -0,0 +1,29 @@
1
+ require 'dns/zone/test_case'
2
+
3
+ class RR_NSEC3PARAM_Test < DNS::Zone::TestCase
4
+
5
+ def test_build_rr__nsec3param
6
+ rr = DNS::Zone::RR::NSEC3PARAM.new
7
+ rr.label = 'foo.example.com.'
8
+
9
+ rr.algorithm = 1
10
+ rr.flags = 0
11
+ rr.iterations = 12
12
+ rr.salt = 'aabbccdd'
13
+
14
+ assert_equal "foo.example.com. IN NSEC3PARAM 1 0 12 aabbccdd", rr.dump
15
+
16
+ end
17
+
18
+ def test_load_rr__nsec3param
19
+ rr = DNS::Zone::RR::NSEC3PARAM.new.load("foo.example.com. IN NSEC3PARAM 1 0 12 aabbccdd")
20
+ assert_equal 'foo.example.com.', rr.label
21
+ assert_equal 'NSEC3PARAM', rr.type
22
+
23
+ assert_equal 1, rr.algorithm
24
+ assert_equal 0, rr.flags
25
+ assert_equal 12, rr.iterations
26
+ assert_equal 'aabbccdd', rr.salt
27
+ end
28
+
29
+ end
@@ -0,0 +1,24 @@
1
+ require 'dns/zone/test_case'
2
+
3
+ class RR_NSEC_Test < DNS::Zone::TestCase
4
+
5
+ def test_build_rr__nsec
6
+ rr = DNS::Zone::RR::NSEC.new
7
+ rr.label = 'alfa.example.com.'
8
+ rr.next_domain = 'host.example.com.'
9
+ rr.rrset_types = 'A MX RRSIG NSEC TYPE1234'
10
+
11
+ assert_equal "alfa.example.com. IN NSEC host.example.com. A MX RRSIG NSEC TYPE1234", rr.dump
12
+
13
+ end
14
+
15
+ def test_load_rr__nsec
16
+ rr = DNS::Zone::RR::NSEC.new.load("alfa.example.com. IN NSEC host.example.com. A MX RRSIG NSEC TYPE1234")
17
+ assert_equal 'alfa.example.com.', rr.label
18
+ assert_equal 'NSEC', rr.type
19
+
20
+ assert_equal 'host.example.com.', rr.next_domain
21
+ assert_equal 'A MX RRSIG NSEC TYPE1234', rr.rrset_types
22
+ end
23
+
24
+ end
@@ -0,0 +1,19 @@
1
+ require 'dns/zone/test_case'
2
+
3
+ class RR_PTR_Test < DNS::Zone::TestCase
4
+
5
+ def test_build_rr__ptr
6
+ rr = DNS::Zone::RR::PTR.new
7
+ rr.label = '69'
8
+ rr.name = 'mx0.lividpenguin.com.'
9
+ assert_equal '69 IN PTR mx0.lividpenguin.com.', rr.dump
10
+ end
11
+
12
+ def test_load_rr__ptr
13
+ rr = DNS::Zone::RR::PTR.new.load('69 IN PTR mx0.lividpenguin.com.')
14
+ assert_equal '69', rr.label
15
+ assert_equal 'PTR', rr.type
16
+ assert_equal 'mx0.lividpenguin.com.', rr.name
17
+ end
18
+
19
+ end
@@ -0,0 +1,37 @@
1
+ require 'dns/zone/test_case'
2
+
3
+ class RR_Record_Test < DNS::Zone::TestCase
4
+
5
+ def test_rr_record_defaults
6
+ rr = DNS::Zone::RR::Record.new
7
+ assert_equal '@', rr.label, 'label is @, by default'
8
+ assert_equal nil, rr.ttl, 'ttl is nil, by default'
9
+ end
10
+
11
+ def test_rr_record_with_label
12
+ rr = DNS::Zone::RR::Record.new
13
+ rr.label = 'labelname'
14
+ assert_equal 'labelname IN <type>', rr.dump
15
+ end
16
+
17
+ def test_rr_record_with_label_and_ttl
18
+ rr = DNS::Zone::RR::Record.new
19
+ rr.label = 'labelname'
20
+ rr.ttl = '2d'
21
+ assert_equal 'labelname 2d IN <type>', rr.dump
22
+ end
23
+
24
+ def test_rr_record_with_ttl
25
+ rr = DNS::Zone::RR::Record.new
26
+ rr.ttl = '2d'
27
+ assert_equal '@ 2d IN <type>', rr.dump
28
+ end
29
+
30
+ # the load method should be overloaded by a subclass, calling direct should raise
31
+ def test_record_load_default_method_raises_exception
32
+ assert_raises(NotImplementedError) {
33
+ DNS::Zone::RR::Record.new.load('')
34
+ }
35
+ end
36
+
37
+ end