/[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 78 - (show annotations)
Thu Aug 25 00:56:06 2005 UTC (18 years, 8 months ago) by dpavlin
File MIME type: application/x-troff
File size: 4173 byte(s)
added SOAP method MessagesReceived, documentation improvements

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

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26