-
Notifications
You must be signed in to change notification settings - Fork 4
/
130-Domain.t
156 lines (129 loc) · 5.28 KB
/
130-Domain.t
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
use strict;
use warnings;
use Test::More qw( no_plan );
# synchronizes the {error,standard} output of this test.
use IO::Handle;
STDOUT->autoflush(1);
STDERR->autoflush(1);
our $class;
BEGIN { $class = 'Net::Whois::Object::Domain'; use_ok $class; }
our %tested;
my @lines = <DATA>;
our $object = ( Net::Whois::Object->new(@lines) )[0];
isa_ok $object, $class;
# Non-inherited methods
can_ok $object, qw( domain descr org admin_c tech_c zone_c nserver ds_rdata sub_dom dom_net
remarks notify mnt_by mnt_lower refer changed source);
# Check if typed attributes are correct
can_ok $object, $object->attributes('mandatory');
can_ok $object, $object->attributes('optional');
# Test 'domain'
$tested{'domain'}++;
is( $object->domain(), 'somewhere.superdomain.com', 'domain properly parsed' );
$object->domain('somewhereelse.superdomain.com');
is( $object->domain(), 'somewhereelse.superdomain.com', 'domain properly set' );
# Test 'descr'
$tested{'descr'}++;
is_deeply( $object->descr(), ['Domain\'s description'], 'descr properly parsed' );
$object->descr('Added descr');
is( $object->descr()->[1], 'Added descr', 'descr properly added' );
# Test 'org'
$tested{'org'}++;
is_deeply( $object->org(), ['ORG-MISC01-RIPE'], 'org properly parsed' );
$object->org('ORG-MISC02-RIPE');
is( $object->org()->[1], 'ORG-MISC02-RIPE', 'org properly added' );
# Test 'admin_c'
$tested{'admin_c'}++;
is_deeply( $object->admin_c(), ['CPNY-ADM01'], 'admin_c properly parsed' );
$object->admin_c('Added admin_c');
is( $object->admin_c()->[1], 'Added admin_c', 'admin_c properly added' );
# Test 'tech_c'
$tested{'tech_c'}++;
is_deeply( $object->tech_c(), ['CPNY-TECH01'], 'tech_c properly parsed' );
$object->tech_c('Added tech_c');
is( $object->tech_c()->[1], 'Added tech_c', 'tech_c properly added' );
# Test 'zone_c'
$tested{'zone_c'}++;
is_deeply( $object->zone_c(), ['CPNY-ZONE'], 'zone_c properly parsed' );
$object->zone_c('Added zone_c');
is( $object->zone_c()->[1], 'Added zone_c', 'zone_c properly added' );
# Test 'nserver'
$tested{'nserver'}++;
is_deeply( $object->nserver(), [ 'NS1.SUPERDOMAIN.COM', 'NS2.SUPERDOMAIN.COM' ], 'nserver properly parsed' );
$object->nserver('Added nserver');
is( $object->nserver()->[2], 'Added nserver', 'nserver properly added' );
# Test 'ds_rdata'
$tested{'ds_rdata'}++;
is_deeply( $object->ds_rdata(), ['64431 5 1 278BF194C29A812B33935BB2517E17D1486210FA'], 'ds_rdata properly parsed' );
$object->ds_rdata('Added ds_rdata');
is( $object->ds_rdata()->[1], 'Added ds_rdata', 'ds_rdata properly added' );
# Test 'sub_dom'
$tested{'sub_dom'}++;
is_deeply( $object->sub_dom(), [ 'SUBDOM1', 'SUBDOM2', 'PRIVATE.SUBDOM2' ], 'sub_dom properly parsed' );
$object->sub_dom('Added sub_dom');
is( $object->sub_dom()->[3], 'Added sub_dom', 'sub_dom properly added' );
# Test 'dom_net'
$tested{'dom_net'}++;
is_deeply( $object->dom_net(), ['10.0.0.1'], 'dom_net properly parsed' );
$object->dom_net('Added dom_net');
is( $object->dom_net()->[1], 'Added dom_net', 'dom_net properly added' );
# Test 'remarks'
$tested{'remarks'}++;
is_deeply( $object->remarks(), ['Nothing to say'], 'remarks properly parsed' );
$object->remarks('Added remarks');
is( $object->remarks()->[1], 'Added remarks', 'remarks properly added' );
# Test 'mnt_by'
$tested{'mnt_by'}++;
is_deeply( $object->mnt_by(), ['DOM-MAINT'], 'mnt_by properly parsed' );
$object->mnt_by('Added mnt_by');
is( $object->mnt_by()->[1], 'Added mnt_by', 'mnt_by properly added' );
# Test 'notify'
$tested{'notify'}++;
is_deeply( $object->notify(), ['watcher@somewhere.net'], 'notify properly parsed' );
$object->notify('Added notify');
is( $object->notify()->[1], 'Added notify', 'notify properly added' );
# Test 'mnt_lower'
$tested{'mnt_lower'}++;
is_deeply( $object->mnt_lower(), ['DOM-LMAINT'], 'mnt_lower properly parsed' );
$object->mnt_lower('Added mnt_lower');
is( $object->mnt_lower()->[1], 'Added mnt_lower', 'mnt_lower properly added' );
# Test 'refer'
$tested{'refer'}++;
is( $object->refer(), 'CLIENTADDRESS whois.server.dom.com 43', 'refer properly parsed' );
$object->refer('CLIENTADDRESS whois.server.dom.com 45');
is( $object->refer(), 'CLIENTADDRESS whois.server.dom.com 45', 'refer properly set' );
# Test 'changed'
$tested{'changed'}++;
is_deeply( $object->changed(), ['someoneelese@somewere.net 20090429'], 'changed properly parsed' );
$object->changed('Added changed');
is( $object->changed()->[1], 'Added changed', 'changed properly added' );
# Test 'source'
$tested{'source'}++;
is( $object->source(), 'RIPE # Filtered', 'source properly parsed' );
$object->source('APNIC');
is( $object->source(), 'APNIC', 'source properly set' );
# Common tests
do 't/common.pl';
ok( $tested{common_loaded}, "t/common.pl properly loaded" );
ok( !$@, "Can evaluate t/common.pl ($@)" );
__DATA__
domain: somewhere.superdomain.com
descr: Domain's description
org: ORG-MISC01-RIPE
admin-c: CPNY-ADM01
tech-c: CPNY-TECH01
zone-c: CPNY-ZONE
nserver: NS1.SUPERDOMAIN.COM
nserver: NS2.SUPERDOMAIN.COM
sub-dom: SUBDOM1
sub-dom: SUBDOM2
sub-dom: PRIVATE.SUBDOM2
dom-net: 10.0.0.1
remarks: Nothing to say
notify: watcher@somewhere.net
mnt-by: DOM-MAINT
mnt-lower: DOM-LMAINT
refer: CLIENTADDRESS whois.server.dom.com 43
ds-rdata: 64431 5 1 278BF194C29A812B33935BB2517E17D1486210FA
changed: someoneelese@somewere.net 20090429
source: RIPE # Filtered