/[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 62 - (show annotations)
Wed Jun 22 12:31:45 2005 UTC (18 years, 9 months ago) by dpavlin
File MIME type: application/x-troff
File size: 3100 byte(s)
added DeleteMemberFromList SOAP method, fixed delete_member_from_list,
improved soap-client.pl example

1 #!/usr/bin/perl -w
2
3 use strict;
4 use blib;
5
6 use Test::More tests => 29;
7
8 BEGIN {
9 use_ok('Nos');
10 use_ok('SOAP::Transport::HTTP');
11 use_ok('SOAP::Lite');
12 };
13
14 my $list_name = 'SOAP test';
15
16 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
21 # start server
22
23 my $pid;
24 unless ($pid = fork) {
25
26 local $SIG{HUP} = sub {
27 diag "exiting SOAP server";
28 exit 0;
29 };
30
31 diag "SOAP server at ", $daemon->url;
32 $daemon->handle;
33
34 }
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 # NewList
44
45 ok(my $list_id = $soap->NewList({
46 list => $list_name,
47 from => 'SOAP list',
48 email => 'soap-test@example.com',
49 })->result, "NewList named");
50
51 ok(my $list_id2 = $soap->NewList(
52 $list_name,
53 'SOAP test list',
54 'soap-test@example.com',
55 )->result, "NewList positional");
56
57 cmp_ok($list_id, '==', $list_id2, "list_id $list_id");
58
59
60 # AddMemberToList
61
62 ok(my $member_id = $soap->AddMemberToList({
63 list => $list_name,
64 email => 'dpavlin@rot13.org',
65 name => 'Dobrica Pavlinusic',
66 ext_id => 42,
67 })->result, "AddMemberToList named");
68
69 ok(my $member_id2 = $soap->AddMemberToList(
70 $list_name,
71 'dpavlin@rot13.org',
72 'Dobrica Pavlinusic',
73 42,
74 )->result, "AddMemberToList positional");
75
76 cmp_ok($member_id, '==', $member_id2, "member_id: $member_id");
77
78
79 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 # AddMessageToList
92
93 my $msg = 'To: member@example.com
94 From: mylist@example.com
95 Subject: text
96
97 This is a dummy test
98 ';
99
100 ok(my $message_id = $soap->AddMessageToList({
101 list => $list_name,
102 message => $msg,
103 })->result, "AddMessageToList named");
104
105 ok(my $message_id2 = $soap->AddMessageToList(
106 $list_name,
107 $msg,
108 )->result, "AddMessageToList positional");
109
110 cmp_ok($message_id, '==', $message_id2, "message_id: $message_id");
111
112
113 # ListMembers
114
115 ok(my $arr = $soap->ListMembers({
116 list => $list_name,
117 })->result, "ListMembers named");
118
119 ok(my $arr2 = $soap->ListMembers(
120 $list_name,
121 )->result, "ListMembers positional");
122
123 eq_array($arr, $arr2, "members lists same");
124
125 cmp_ok($#{$arr}, '==', 1, "member count ok");
126
127 cmp_ok($arr->[0]->{'full_name'}, '==', 'Dobrica Pavlinusic', "full_name");
128 cmp_ok($arr->[0]->{'email'}, '==', 'dpavlin@rot13.org', "email");
129
130 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 # kill server
147
148 ok(kill('HUP' => $pid), "kill $pid");
149
150 ok(waitpid($pid,0), "waitpid");
151
152 ok(! kill(0, $pid), "child dead");
153
154 exit 1;

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26