/[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 63 by dpavlin, Wed Jun 22 16:42:06 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');
# Line 11  BEGIN { Line 11  BEGIN {
11          use_ok('SOAP::Lite');          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");  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");  ok(my $daemon = new SOAP::Transport::HTTP::Daemon(LocalAddr => 'localhost')->dispatch_to('Nos::SOAP'), "SOAP daemon");
19    
 my $pid;  
20    
21  $SIG{CHLD} = 'IGNORE';  # start server
22    
23    my $pid;
24  unless ($pid = fork) {  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;          diag "SOAP server at ", $daemon->url;
32          $daemon->handle;          $daemon->handle;
33    
34  }  }
35    
36  diag "child pid: $pid";  diag "child pid: $pid";
# Line 31  my $soap = SOAP::Lite Line 40  my $soap = SOAP::Lite
40          ->uri('http://localhost/Nos/SOAP/')          ->uri('http://localhost/Nos/SOAP/')
41          ->proxy($daemon->url);          ->proxy($daemon->url);
42    
43    # NewList
44    
45  ok(my $list_id = $soap->NewList({  ok(my $list_id = $soap->NewList({
46          list => 'SOAP test',          list => $list_name,
47            from => 'SOAP list',
48          email => 'soap-test@example.com',          email => 'soap-test@example.com',
49  })->result, "NewList");  })->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  diag "list_id: $list_id";  
60    # AddMemberToList
61    
62  ok(my $member_id = $soap->AddMemberToList({  ok(my $member_id = $soap->AddMemberToList({
63          list => 'SOAP test',          list => $list_name,
64          email => 'dpavlin@rot13.org',          email => 'dpavlin@rot13.org',
65          name => 'Dobrica Pavlinusic',          name => 'Dobrica Pavlinusic',
66  })->result, "AddMemberToList");          ext_id => 42,
67    })->result, "AddMemberToList named");
68    
69  diag "member_id: $member_id";  ok(my $member_id2 = $soap->AddMemberToList(
70            $list_name,
71            'dpavlin@rot13.org',
72            'Dobrica Pavlinusic',
73            42,
74    )->result, "AddMemberToList positional");
75    
76  ok(my $message_id = $soap->AddMessageToList({  cmp_ok($member_id, '==', $member_id2, "member_id: $member_id");
77          list => 'SOAP test',  
78          message => 'To: member@example.com  
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  From: mylist@example.com
95  Subject: text  Subject: text
96    
97  This is a dummy test  This is a dummy test
98  ',  ';
 })->result, "AddMessageToList");  
99    
100  diag "message_id: $message_id";  ok(my $message_id = $soap->AddMessageToList({
101            list => $list_name,
102            message => $msg,
103    })->result, "AddMessageToList named");
104    
105  ok(kill('TERM' => $pid), "kill $pid");  ok(my $message_id2 = $soap->AddMessageToList(
106            $list_name,
107            $msg,
108    )->result, "AddMessageToList positional");
109    
110  sleep 1;  cmp_ok($message_id, '==', $message_id2, "message_id: $message_id");
 print `ps ax`;  
111    
112  ok(! kill(0, $pid), "child dead");  
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    # 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    # kill server
175    
176    ok(kill('HUP' => $pid), "kill $pid");
177    
178  ok(waitpid($pid,0), "waitpid");  ok(waitpid($pid,0), "waitpid");
179    
180    ok(! kill(0, $pid), "child dead");
181    
182  exit 1;  exit 1;

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

  ViewVC Help
Powered by ViewVC 1.1.26