summaryrefslogtreecommitdiff
path: root/contrib/DNS-LDNS/t/rr.t
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/DNS-LDNS/t/rr.t')
-rw-r--r--contrib/DNS-LDNS/t/rr.t47
1 files changed, 47 insertions, 0 deletions
diff --git a/contrib/DNS-LDNS/t/rr.t b/contrib/DNS-LDNS/t/rr.t
new file mode 100644
index 0000000000000..45b3d9f62f33e
--- /dev/null
+++ b/contrib/DNS-LDNS/t/rr.t
@@ -0,0 +1,47 @@
+use Test::More tests => 14;
+
+use DNS::LDNS ':all';
+
+BEGIN { use_ok('DNS::LDNS') };
+
+my $rr1 = new DNS::LDNS::RR;
+isa_ok($rr1, 'DNS::LDNS::RR', 'Create empty rr');
+
+$rr1 = new DNS::LDNS::RR(
+ type => LDNS_RR_TYPE_SOA,
+ class => LDNS_RR_CLASS_CH,
+ ttl => 1234,
+ owner => 'myzone.org',
+ rdata => [
+ new DNS::LDNS::RData(LDNS_RDF_TYPE_DNAME, 'hostmaster.myzone.org'),
+ new DNS::LDNS::RData(LDNS_RDF_TYPE_DNAME, 'master.myzone.org'),
+ new DNS::LDNS::RData(LDNS_RDF_TYPE_INT32, '2012113030'),
+ new DNS::LDNS::RData(LDNS_RDF_TYPE_PERIOD, '12345'),
+ new DNS::LDNS::RData(LDNS_RDF_TYPE_PERIOD, '1827'),
+ new DNS::LDNS::RData(LDNS_RDF_TYPE_PERIOD, '2345678'),
+ new DNS::LDNS::RData(LDNS_RDF_TYPE_PERIOD, '87654')
+ ],
+);
+isa_ok($rr1, 'DNS::LDNS::RR', 'Create SOA rr with rdata');
+
+like($rr1->to_string, qr/^myzone\.org\.\s+1234\s+CH\s+SOA\s+hostmaster\.myzone\.org\.\s+master\.myzone\.org\.\s+2012113030\s+12345\s+1827\s+2345678\s+87654$/,
+ 'Format SOA rr as string');
+
+is($rr1->pop_rdata->to_string, '87654', 'pop rdata');
+$rr1->push_rdata(new DNS::LDNS::RData(LDNS_RDF_TYPE_PERIOD, '55667'));
+is($rr1->rdata(6)->to_string, '55667', 'push_rdata and access rdata by index');
+
+my $rr2 = new DNS::LDNS::RR(str => 'myzone.org. 1234 IN SOA hostmaster.myzone.org. master.myzone.org. 2012 12345 1827 2345678 87654');
+isa_ok($rr2, 'DNS::LDNS::RR', 'Create SOA rr from string');
+like($rr2->to_string, qr/^myzone\.org\.\s+1234\s+IN\s+SOA\s+hostmaster\.myzone\.org\.\s+master\.myzone\.org\.\s+2012\s+12345\s+1827\s+2345678\s+87654$/,
+ 'Format it back to string');
+
+ok($rr1->compare($rr2) > 0, 'Compare rr, greater than');
+ok($rr2->compare($rr1) < 0, 'Compare rr, less than');
+is($rr1->compare($rr1), 0, 'Compare rr, equal');
+
+my $rr3 = new DNS::LDNS::RR(str => 'ozone.org. 1234 IN SOA hostmaster.ozone.org. master.ozone.org. 2012 12345 1827 2345678 87654');
+
+ok($rr3->compare_dname($rr1) > 0, 'Compare dname, greater than');
+ok($rr1->compare_dname($rr3) < 0, 'Compare dname, less than');
+is($rr1->compare_dname($rr2), 0, 'Compare dname, equal');