/[notice-sender]/trunk/t/2_soap.t
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/t/2_soap.t

Parent Directory Parent Directory | Revision Log Revision Log


Revision 68 - (show annotations)
Mon Aug 1 08:59:36 2005 UTC (18 years, 8 months ago) by dpavlin
File MIME type: application/x-troff
File size: 3981 byte(s)
_add_aliases now updates alias if it allready exists, added debug flag to SAOP tests

1 #!/usr/bin/perl -w
2
3 use strict;
4 use blib;
5
6 use Test::More tests => 38;
7
8 BEGIN {
9 use_ok('Nos');
10 use_ok('SOAP::Transport::HTTP');
11 use_ok('SOAP::Lite');
12 use_ok('Cwd');
13 };
14
15 my $debug = 0;
16 my $list_name = 'SOAP test';
17
18 my $aliases = Cwd::abs_path($0);
19 $aliases =~ s#/[^/]*$#/#;
20 $aliases .= 'aliases';
21
22 ok($aliases, "using aliases file $aliases");
23
24 ok(new Nos::SOAP(
25 'dsn' => 'dbi:Pg:dbname=notices',
26 'aliases' => $aliases,
27 ), "new");
28
29 ok(my $daemon = new SOAP::Transport::HTTP::Daemon(LocalAddr => 'localhost')->dispatch_to('Nos::SOAP'), "SOAP daemon");
30
31 # start server
32
33 my $pid;
34 unless ($pid = fork) {
35
36 local $SIG{HUP} = sub {
37 diag "exiting SOAP server";
38 exit 0;
39 };
40
41 diag "SOAP server at ", $daemon->url;
42 $daemon->handle;
43
44 }
45
46 diag "child pid: $pid";
47
48 my $soap = SOAP::Lite
49 ->readable(1)
50 ->uri('http://localhost/Nos/SOAP/')
51 ->proxy($daemon->url);
52
53 $soap->on_debug(sub{print "# CLIENT ",@_}) if ($debug);
54
55 # NewList
56
57 ok(my $list_id = $soap->NewList({
58 list => $list_name,
59 from => 'SOAP list',
60 email => 'soap-test@example.com',
61 })->result, "NewList named");
62
63 ok(my $list_id2 = $soap->NewList(
64 $list_name,
65 'SOAP test list',
66 'soap-test@example.com',
67 )->result, "NewList positional");
68
69 cmp_ok($list_id, '==', $list_id2, "list_id $list_id");
70
71
72 # AddMemberToList
73
74 ok(my $member_id = $soap->AddMemberToList({
75 list => $list_name,
76 email => 'dpavlin@rot13.org',
77 name => 'Dobrica Pavlinusic',
78 ext_id => 42,
79 })->result, "AddMemberToList named");
80
81 ok(my $member_id2 = $soap->AddMemberToList(
82 $list_name,
83 'dpavlin@rot13.org',
84 'Dobrica Pavlinusic',
85 42,
86 )->result, "AddMemberToList positional");
87
88 cmp_ok($member_id, '==', $member_id2, "member_id: $member_id");
89
90
91 ok($member_id = $soap->AddMemberToList({
92 list => $list_name,
93 email => 'nobody@example.com',
94 })->result, "AddMemberToList named");
95
96 ok($member_id2 = $soap->AddMemberToList(
97 $list_name,
98 'nobody@example.com',
99 )->result, "AddMemberToList positional");
100
101 cmp_ok($member_id, '==', $member_id2, "member_id: $member_id");
102
103 # AddMessageToList
104
105 my $msg = 'To: member@example.com
106 From: mylist@example.com
107 Subject: text
108
109 This is a dummy test
110 ';
111
112 ok(my $message_id = $soap->AddMessageToList({
113 list => $list_name,
114 message => $msg,
115 })->result, "AddMessageToList named");
116
117 ok(my $message_id2 = $soap->AddMessageToList(
118 $list_name,
119 $msg,
120 )->result, "AddMessageToList positional");
121
122 cmp_ok($message_id, '==', $message_id2, "message_id: $message_id");
123
124
125 # ListMembers
126
127 ok(my $arr = $soap->ListMembers({
128 list => $list_name,
129 })->result, "ListMembers named");
130
131 ok(my $arr2 = $soap->ListMembers(
132 $list_name,
133 )->result, "ListMembers positional");
134
135 eq_array($arr, $arr2, "members lists same");
136
137 cmp_ok($#{$arr}, '==', 1, "member count ok");
138
139 cmp_ok($arr->[0]->{'full_name'}, '==', 'Dobrica Pavlinusic', "full_name");
140 cmp_ok($arr->[0]->{'email'}, '==', 'dpavlin@rot13.org', "email");
141
142 cmp_ok($arr->[1]->{'email'}, '==', 'nobody@example.com', "email");
143
144 # DeleteMember
145
146 ok($soap->DeleteMemberFromList({
147 list => $list_name,
148 email => $arr->[0]->{'email'},
149 })->result, "DeleteMemberFromList ".$arr->[0]->{'email'});
150
151
152 ok($arr = $soap->ListMembers({
153 list => $list_name,
154 })->result, "ListMembers named");
155
156 cmp_ok($#{$arr}, '==', 0, "member deleted");
157
158 # DeleteList
159
160 ok($soap->DeleteList({
161 list => $list_name,
162 })->result, "DeleteList named");
163
164 ok(my $has_members = $soap->ListMembers({
165 list => $list_name,
166 })->result, "ListMembers for $list_name");
167
168 cmp_ok($#{$has_members}, '==', -1, "ok, no members");
169
170 ok($list_id = $soap->NewList({
171 list => $list_name,
172 from => 'SOAP list',
173 email => 'soap-test@example.com',
174 })->result, "NewList $list_name (recreated)");
175
176 ok($soap->DeleteList(
177 $list_name,
178 )->result, "DeleteList positional");
179
180 ok($has_members = $soap->ListMembers({
181 list => $list_name,
182 })->result, "ListMembers for $list_name");
183
184 cmp_ok($#{$has_members}, '==', -1, "ok, no members");
185
186 # kill server
187
188 ok(kill('HUP' => $pid), "kill $pid");
189
190 ok(waitpid($pid,0), "waitpid");
191
192 ok(! kill(0, $pid), "child dead");
193
194 exit 1;
195

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26