3 |
use strict; |
use strict; |
4 |
use blib; |
use blib; |
5 |
|
|
6 |
use Test::More tests => 11; |
use Test::More tests => 22; |
7 |
|
|
8 |
BEGIN { |
BEGIN { |
9 |
use_ok('Nos'); |
use_ok('Nos'); |
15 |
|
|
16 |
ok(my $daemon = new SOAP::Transport::HTTP::Daemon(LocalAddr => 'localhost')->dispatch_to('Nos::SOAP'), "SOAP daemon"); |
ok(my $daemon = new SOAP::Transport::HTTP::Daemon(LocalAddr => 'localhost')->dispatch_to('Nos::SOAP'), "SOAP daemon"); |
17 |
|
|
|
my $pid; |
|
18 |
|
|
19 |
$SIG{CHLD} = 'IGNORE'; |
# start server |
20 |
|
|
21 |
|
my $pid; |
22 |
unless ($pid = fork) { |
unless ($pid = fork) { |
23 |
|
|
24 |
|
local $SIG{HUP} = sub { |
25 |
|
diag "exiting SOAP server"; |
26 |
|
exit 0; |
27 |
|
}; |
28 |
|
|
29 |
diag "SOAP server at ", $daemon->url; |
diag "SOAP server at ", $daemon->url; |
30 |
$daemon->handle; |
$daemon->handle; |
31 |
|
|
32 |
} |
} |
33 |
|
|
34 |
diag "child pid: $pid"; |
diag "child pid: $pid"; |
38 |
->uri('http://localhost/Nos/SOAP/') |
->uri('http://localhost/Nos/SOAP/') |
39 |
->proxy($daemon->url); |
->proxy($daemon->url); |
40 |
|
|
41 |
|
# NewList |
42 |
|
|
43 |
ok(my $list_id = $soap->NewList({ |
ok(my $list_id = $soap->NewList({ |
44 |
list => 'SOAP test', |
list => 'SOAP test', |
45 |
|
from => 'SOAP list', |
46 |
email => 'soap-test@example.com', |
email => 'soap-test@example.com', |
47 |
})->result, "NewList"); |
})->result, "NewList named"); |
48 |
|
|
49 |
|
ok(my $list_id2 = $soap->NewList( |
50 |
|
'SOAP test', |
51 |
|
'SOAP list', |
52 |
|
'soap-test@example.com', |
53 |
|
)->result, "NewList positional"); |
54 |
|
|
55 |
diag "list_id: $list_id"; |
cmp_ok($list_id, '==', $list_id2, "list_id $list_id"); |
56 |
|
|
57 |
|
|
58 |
|
# AddMemberToList |
59 |
|
|
60 |
ok(my $member_id = $soap->AddMemberToList({ |
ok(my $member_id = $soap->AddMemberToList({ |
61 |
list => 'SOAP test', |
list => 'SOAP test', |
62 |
email => 'dpavlin@rot13.org', |
email => 'dpavlin@rot13.org', |
63 |
name => 'Dobrica Pavlinusic', |
name => 'Dobrica Pavlinusic', |
64 |
})->result, "AddMemberToList"); |
ext_id => 42, |
65 |
|
})->result, "AddMemberToList named"); |
66 |
|
|
67 |
diag "member_id: $member_id"; |
ok(my $member_id2 = $soap->AddMemberToList( |
68 |
|
'SOAP test', |
69 |
|
'dpavlin@rot13.org', |
70 |
|
'Dobrica Pavlinusic', |
71 |
|
42, |
72 |
|
)->result, "AddMemberToList positional"); |
73 |
|
|
74 |
ok(my $message_id = $soap->AddMessageToList({ |
cmp_ok($member_id, '==', $member_id2, "member_id: $member_id"); |
75 |
list => 'SOAP test', |
|
76 |
message => 'To: member@example.com |
|
77 |
|
# AddMessageToList |
78 |
|
|
79 |
|
my $msg = 'To: member@example.com |
80 |
From: mylist@example.com |
From: mylist@example.com |
81 |
Subject: text |
Subject: text |
82 |
|
|
83 |
This is a dummy test |
This is a dummy test |
84 |
', |
'; |
|
})->result, "AddMessageToList"); |
|
85 |
|
|
86 |
diag "message_id: $message_id"; |
ok(my $message_id = $soap->AddMessageToList({ |
87 |
|
list => 'SOAP test', |
88 |
|
message => $msg, |
89 |
|
})->result, "AddMessageToList named"); |
90 |
|
|
91 |
ok(kill('TERM' => $pid), "kill $pid"); |
ok(my $message_id2 = $soap->AddMessageToList( |
92 |
|
'SOAP test', |
93 |
|
$msg, |
94 |
|
)->result, "AddMessageToList positional"); |
95 |
|
|
96 |
sleep 1; |
cmp_ok($message_id, '==', $message_id2, "message_id: $message_id"); |
|
print `ps ax`; |
|
97 |
|
|
98 |
ok(! kill(0, $pid), "child dead"); |
|
99 |
|
# ListMembers |
100 |
|
|
101 |
|
ok(my @arr = $soap->ListMembers({ |
102 |
|
list => 'SOAP test', |
103 |
|
})->result, "ListMembers named"); |
104 |
|
|
105 |
|
ok(my @arr2 = $soap->ListMembers( |
106 |
|
'SOAP test', |
107 |
|
)->result, "ListMembers positional"); |
108 |
|
|
109 |
|
eq_array(\@arr, \@arr2, "members lists same"); |
110 |
|
|
111 |
|
cmp_ok($#arr, '==', 0, "member count ok"); |
112 |
|
|
113 |
|
cmp_ok($arr[0]->{'full_name'}, '==', 'Dobrica Pavlinusic', "full_name"); |
114 |
|
cmp_ok($arr[0]->{'email'}, '==', 'dpavlin@rot13.org', "email"); |
115 |
|
|
116 |
|
# kill server |
117 |
|
|
118 |
|
ok(kill('HUP' => $pid), "kill $pid"); |
119 |
|
|
120 |
ok(waitpid($pid,0), "waitpid"); |
ok(waitpid($pid,0), "waitpid"); |
121 |
|
|
122 |
|
ok(! kill(0, $pid), "child dead"); |
123 |
|
|
124 |
exit 1; |
exit 1; |