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

Diff of /trunk/t/2_soap.t

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 39 by dpavlin, Tue May 17 22:23:40 2005 UTC revision 70 by dpavlin, Tue Aug 2 19:41:28 2005 UTC
# Line 3  Line 3 
3  use strict;  use strict;
4  use blib;  use blib;
5    
6  use Test::More tests => 11;  use Test::More tests => 38;
7    
8  BEGIN {  BEGIN {
9          use_ok('Nos');          use_ok('Nos');
10          use_ok('SOAP::Transport::HTTP');          use_ok('SOAP::Transport::HTTP');
11          use_ok('SOAP::Lite');          use_ok('SOAP::Lite');
12            use_ok('Cwd');
13  };  };
14    
15  ok(my $nos = new Nos::SOAP('dsn' => 'dbi:Pg:dbname=notices'), "new");  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");  ok(my $daemon = new SOAP::Transport::HTTP::Daemon(LocalAddr => 'localhost')->dispatch_to('Nos::SOAP'), "SOAP daemon");
32    
33    # start server
34    
35  my $pid;  my $pid;
36    unless ($pid = fork) {
37    
38  $SIG{CHLD} = 'IGNORE';          local $SIG{HUP} = sub {
39                    diag "exiting SOAP server";
40                    exit 0;
41            };
42    
 unless ($pid = fork) {  
43          diag "SOAP server at ", $daemon->url;          diag "SOAP server at ", $daemon->url;
44          $daemon->handle;          $daemon->handle;
45    
46  }  }
47    
48  diag "child pid: $pid";  diag "child pid: $pid";
# Line 31  my $soap = SOAP::Lite Line 52  my $soap = SOAP::Lite
52          ->uri('http://localhost/Nos/SOAP/')          ->uri('http://localhost/Nos/SOAP/')
53          ->proxy($daemon->url);          ->proxy($daemon->url);
54    
55    $soap->on_debug(sub{print "## ", join("\n## ",@_), "\n";}) if ($debug);
56    
57    # NewList
58    
59  ok(my $list_id = $soap->NewList({  ok(my $list_id = $soap->NewList({
60          list => 'SOAP test',                  list => $list_name,
61          email => 'soap-test@example.com',                  from => 'SOAP list',
62  })->result, "NewList");                  email => 'soap-test@example.com',
63    })->result, "NewList named");
64    
65    ok(my $list_id2 = $soap->NewList(
66            $list_name,
67            'SOAP test list',
68            'soap-test@example.com',
69    )->result, "NewList positional");
70    
71    cmp_ok($list_id, '==', $list_id2, "list_id $list_id");
72    
73  diag "list_id: $list_id";  
74    # AddMemberToList
75    
76  ok(my $member_id = $soap->AddMemberToList({  ok(my $member_id = $soap->AddMemberToList({
77          list => 'SOAP test',          list => $list_name,
78          email => 'dpavlin@rot13.org',          email => 'dpavlin@rot13.org',
79          name => 'Dobrica Pavlinusic',          name => 'Dobrica Pavlinusic',
80  })->result, "AddMemberToList");          ext_id => 42,
81    })->result, "AddMemberToList named");
82    
83  diag "member_id: $member_id";  ok(my $member_id2 = $soap->AddMemberToList(
84            $list_name,
85            'dpavlin@rot13.org',
86            'Dobrica Pavlinusic',
87            42,
88    )->result, "AddMemberToList positional");
89    
90  ok(my $message_id = $soap->AddMessageToList({  cmp_ok($member_id, '==', $member_id2, "member_id: $member_id");
91          list => 'SOAP test',  
92          message => 'To: member@example.com  
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  From: mylist@example.com
109  Subject: text  Subject: text
110    
111  This is a dummy test  This is a dummy test
112  ',  ';
113  })->result, "AddMessageToList");  
114    ok(my $message_id = $soap->AddMessageToList({
115            list => $list_name,
116            message => $msg,
117    })->result, "AddMessageToList named");
118    
119  diag "message_id: $message_id";  ok(my $message_id2 = $soap->AddMessageToList(
120            $list_name,
121            $msg,
122    )->result, "AddMessageToList positional");
123    
124  ok(kill('TERM' => $pid), "kill $pid");  cmp_ok($message_id, '==', $message_id2, "message_id: $message_id");
125    
 sleep 1;  
 print `ps ax`;  
126    
127  ok(! kill(0, $pid), "child dead");  # 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    # DeleteList
161    
162    ok($soap->DeleteList({
163            list => $list_name,
164    })->result, "DeleteList 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->NewList({
173            list => $list_name,
174            from => 'SOAP list',
175            email => 'soap-test@example.com',
176    })->result, "NewList $list_name (recreated)");
177    
178    ok($soap->DeleteList(
179            $list_name,
180    )->result, "DeleteList 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    # kill server
189    
190    ok(kill('HUP' => $pid), "kill $pid");
191    
192  ok(waitpid($pid,0), "waitpid");  ok(waitpid($pid,0), "waitpid");
193    
194    ok(! kill(0, $pid), "child dead");
195    
196  exit 1;  exit 1;
197    

Legend:
Removed from v.39  
changed lines
  Added in v.70

  ViewVC Help
Powered by ViewVC 1.1.26