/[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

Annotation of /trunk/t/2_soap.t

Parent Directory Parent Directory | Revision Log Revision Log


Revision 78 - (hide annotations)
Thu Aug 25 00:56:06 2005 UTC (18 years, 7 months ago) by dpavlin
File MIME type: application/x-troff
File size: 4173 byte(s)
added SOAP method MessagesReceived, documentation improvements

1 dpavlin 39 #!/usr/bin/perl -w
2    
3     use strict;
4     use blib;
5    
6 dpavlin 78 use Test::More tests => 39;
7 dpavlin 39
8     BEGIN {
9     use_ok('Nos');
10     use_ok('SOAP::Transport::HTTP');
11     use_ok('SOAP::Lite');
12 dpavlin 67 use_ok('Cwd');
13 dpavlin 39 };
14    
15 dpavlin 68 my $debug = 0;
16 dpavlin 62 my $list_name = 'SOAP test';
17    
18 dpavlin 70 $debug = 1 if (@ARGV);
19    
20 dpavlin 67 my $aliases = Cwd::abs_path($0);
21     $aliases =~ s#/[^/]*$#/#;
22     $aliases .= 'aliases';
23    
24     ok($aliases, "using aliases file $aliases");
25    
26 dpavlin 68 ok(new Nos::SOAP(
27 dpavlin 66 'dsn' => 'dbi:Pg:dbname=notices',
28 dpavlin 67 'aliases' => $aliases,
29 dpavlin 66 ), "new");
30 dpavlin 39
31     ok(my $daemon = new SOAP::Transport::HTTP::Daemon(LocalAddr => 'localhost')->dispatch_to('Nos::SOAP'), "SOAP daemon");
32    
33 dpavlin 41 # start server
34    
35 dpavlin 39 my $pid;
36 dpavlin 40 unless ($pid = fork) {
37 dpavlin 39
38 dpavlin 40 local $SIG{HUP} = sub {
39     diag "exiting SOAP server";
40     exit 0;
41     };
42    
43 dpavlin 39 diag "SOAP server at ", $daemon->url;
44     $daemon->handle;
45 dpavlin 40
46 dpavlin 39 }
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 dpavlin 70 $soap->on_debug(sub{print "## ", join("\n## ",@_), "\n";}) if ($debug);
56 dpavlin 68
57 dpavlin 72 # CreateList
58 dpavlin 41
59 dpavlin 72 ok(my $list_id = $soap->CreateList({
60 dpavlin 67 list => $list_name,
61     from => 'SOAP list',
62     email => 'soap-test@example.com',
63 dpavlin 72 })->result, "CreateList named");
64 dpavlin 39
65 dpavlin 72 ok(my $list_id2 = $soap->CreateList(
66 dpavlin 62 $list_name,
67     'SOAP test list',
68 dpavlin 41 'soap-test@example.com',
69 dpavlin 72 )->result, "CreateList positional");
70 dpavlin 39
71 dpavlin 41 cmp_ok($list_id, '==', $list_id2, "list_id $list_id");
72    
73    
74     # AddMemberToList
75    
76 dpavlin 39 ok(my $member_id = $soap->AddMemberToList({
77 dpavlin 62 list => $list_name,
78 dpavlin 39 email => 'dpavlin@rot13.org',
79     name => 'Dobrica Pavlinusic',
80 dpavlin 58 ext_id => 42,
81 dpavlin 41 })->result, "AddMemberToList named");
82 dpavlin 39
83 dpavlin 41 ok(my $member_id2 = $soap->AddMemberToList(
84 dpavlin 62 $list_name,
85 dpavlin 41 'dpavlin@rot13.org',
86     'Dobrica Pavlinusic',
87 dpavlin 58 42,
88 dpavlin 41 )->result, "AddMemberToList positional");
89 dpavlin 39
90 dpavlin 41 cmp_ok($member_id, '==', $member_id2, "member_id: $member_id");
91    
92    
93 dpavlin 62 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 dpavlin 41 # AddMessageToList
106    
107     my $msg = 'To: member@example.com
108 dpavlin 39 From: mylist@example.com
109     Subject: text
110    
111     This is a dummy test
112 dpavlin 41 ';
113 dpavlin 39
114 dpavlin 41 ok(my $message_id = $soap->AddMessageToList({
115 dpavlin 62 list => $list_name,
116 dpavlin 41 message => $msg,
117     })->result, "AddMessageToList named");
118 dpavlin 39
119 dpavlin 41 ok(my $message_id2 = $soap->AddMessageToList(
120 dpavlin 62 $list_name,
121 dpavlin 41 $msg,
122     )->result, "AddMessageToList positional");
123    
124     cmp_ok($message_id, '==', $message_id2, "message_id: $message_id");
125    
126    
127 dpavlin 43 # ListMembers
128    
129 dpavlin 62 ok(my $arr = $soap->ListMembers({
130     list => $list_name,
131 dpavlin 43 })->result, "ListMembers named");
132    
133 dpavlin 62 ok(my $arr2 = $soap->ListMembers(
134     $list_name,
135 dpavlin 43 )->result, "ListMembers positional");
136    
137 dpavlin 62 eq_array($arr, $arr2, "members lists same");
138 dpavlin 43
139 dpavlin 62 cmp_ok($#{$arr}, '==', 1, "member count ok");
140 dpavlin 44
141 dpavlin 62 cmp_ok($arr->[0]->{'full_name'}, '==', 'Dobrica Pavlinusic', "full_name");
142     cmp_ok($arr->[0]->{'email'}, '==', 'dpavlin@rot13.org', "email");
143 dpavlin 44
144 dpavlin 62 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 dpavlin 72 # DropList
161 dpavlin 63
162 dpavlin 72 ok($soap->DropList({
163 dpavlin 63 list => $list_name,
164 dpavlin 72 })->result, "DropList named");
165 dpavlin 63
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 dpavlin 72 ok($list_id = $soap->CreateList({
173 dpavlin 63 list => $list_name,
174     from => 'SOAP list',
175     email => 'soap-test@example.com',
176 dpavlin 72 })->result, "CreateList $list_name (recreated)");
177 dpavlin 63
178 dpavlin 72 ok($soap->DropList(
179 dpavlin 63 $list_name,
180 dpavlin 72 )->result, "DropList positional");
181 dpavlin 63
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 dpavlin 78 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 dpavlin 41 # kill server
195    
196 dpavlin 40 ok(kill('HUP' => $pid), "kill $pid");
197 dpavlin 39
198 dpavlin 40 ok(waitpid($pid,0), "waitpid");
199 dpavlin 39
200     ok(! kill(0, $pid), "child dead");
201    
202     exit 1;
203 dpavlin 67

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26