forked from arhuman/Net-Whois-RIPE
-
Notifications
You must be signed in to change notification settings - Fork 0
/
215-SyncUpdates.t
81 lines (59 loc) · 2.19 KB
/
215-SyncUpdates.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
use strict;
use warnings;
use Test::More;
use Test::Exception;
use Net::Whois::RIPE;
use Net::Whois::Object;
use Data::Dumper;
our $LWP;
BEGIN {
$LWP = do {
eval {
require LWP::UserAgent;
};
($@) ? 0 : 1;
};
}
unless ( $ENV{TEST_MNTNER} && $ENV{TEST_MNTNER_PASSWORD} ) {
warn("\n\nSet TEST_MNTNER, TEST_MNTNER_PASSWORD environment vars for live testing\n TEST_MNTNER being a maintener's nic-hdl in the RIPE test database\n TEST_MNTNER_PASSWORD being its password\n\n");
plan skip_all => ' Set environment vars for server testing';
}
unless ($LWP) {
plan skip_all => 'LWP::UserAgent installation required for update';
}
plan tests => 5;
my $MNTNER = $ENV{TEST_MNTNER};
my $PASSWD = $ENV{TEST_MNTNER_PASSWORD};
my @lines = <DATA>;
map {s/MNTNER/$MNTNER/} @lines;
my @o = Net::Whois::Object->new(@lines);
my $person = shift @o;
my $mntner = shift @o;
my $email_before = $person->e_mail()->[0];
my $person_id = $person->syncupdates_create($PASSWD);
ok($person_id);
my $whois = Net::Whois::RIPE->new( hostname => 'whois-test.ripe.net' );
my $iterator = $whois->query($person_id);
($person) = grep { ( $_->class() eq 'Person' ) and ( $_->nic_hdl eq $person_id ) } Net::Whois::Object->new($iterator);
is_deeply( $person->e_mail(), [$email_before], "Same name from previous" );
my $email_after = $person->e_mail('arhuman2@gmail.com');
$person->syncupdates_update($PASSWD);
$iterator = $whois->query($person_id);
($person) = grep { ( $_->class() eq 'Person' ) and ( $_->nic_hdl eq $person_id ) } Net::Whois::Object->new($iterator);
is_deeply( $person->e_mail(), $email_after, "Same as set name" );
isa_ok( $person, 'Net::Whois::Object::Person', 'Found a Person' );
$person->syncupdates_delete($PASSWD);
$whois = Net::Whois::RIPE->new( hostname => 'whois-test.ripe.net' );
$iterator = $whois->query($person_id);
($person) = grep { $_->class() eq 'Response' } Net::Whois::Object->new($iterator);
like( $person->response, qr/ERROR:101:/, 'Deleted Person not found' );
__DATA__
person: Joh Doe
address: 1 Avenue de la Gare
address: 75001 Paris
phone: +33 1 01 01 01 01
e-mail: arhuman@gmail.com
nic-hdl: AUTO-1
mnt-by: MNTNER
changed: arhuman@gmail.com
source: TEST