/[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 63 - (hide annotations)
Wed Jun 22 16:42:06 2005 UTC (18 years, 10 months ago) by dpavlin
File MIME type: application/x-troff
File size: 3743 byte(s)
added delete_list and DeleteList SOAP call. No brainer. Tests now clean up
after them.

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

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26