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

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

  ViewVC Help
Powered by ViewVC 1.1.26