--- trunk/t/2_soap.t 2005/06/22 16:42:06 63 +++ trunk/t/2_soap.t 2006/12/19 15:04:05 93 @@ -3,20 +3,34 @@ use strict; use blib; -use Test::More tests => 36; +use Test::More tests => 44; BEGIN { use_ok('Nos'); use_ok('SOAP::Transport::HTTP'); use_ok('SOAP::Lite'); + use_ok('Cwd'); }; +use Data::Dump qw/dump/; + +my $debug = 0; my $list_name = 'SOAP test'; -ok(my $nos = new Nos::SOAP('dsn' => 'dbi:Pg:dbname=notices'), "new"); +$debug = 1 if (@ARGV); -ok(my $daemon = new SOAP::Transport::HTTP::Daemon(LocalAddr => 'localhost')->dispatch_to('Nos::SOAP'), "SOAP daemon"); +my $aliases = Cwd::abs_path($0); +$aliases =~ s#/[^/]*$#/#; +$aliases .= 'aliases'; + +ok($aliases, "using aliases file $aliases"); + +ok(my $nos = new Nos::SOAP( + 'dsn' => 'dbi:Pg:dbname=notices', + 'aliases' => $aliases, +), "new Nos::SOAP"); +ok(my $daemon = new SOAP::Transport::HTTP::Daemon(LocalAddr => 'localhost')->dispatch_to('Nos::SOAP'), "SOAP daemon"); # start server @@ -40,19 +54,21 @@ ->uri('http://localhost/Nos/SOAP/') ->proxy($daemon->url); -# NewList +$soap->on_debug(sub{print "## ", join("\n## ",@_), "\n";}) if ($debug); -ok(my $list_id = $soap->NewList({ - list => $list_name, - from => 'SOAP list', - email => 'soap-test@example.com', -})->result, "NewList named"); +# CreateList + +ok(my $list_id = $soap->CreateList({ + list => $list_name, + from => 'SOAP list', + email => 'soap-test@example.com', +})->result, "CreateList named"); -ok(my $list_id2 = $soap->NewList( +ok(my $list_id2 = $soap->CreateList( $list_name, 'SOAP test list', 'soap-test@example.com', -)->result, "NewList positional"); +)->result, "CreateList positional"); cmp_ok($list_id, '==', $list_id2, "list_id $list_id"); @@ -109,6 +125,12 @@ cmp_ok($message_id, '==', $message_id2, "message_id: $message_id"); +ok(my $message_id3 = $soap->AddMessageToList({ + list => $list_name, + message => "$msg\n and another one", +})->result, "AddMessageToList named"); + +cmp_ok($message_id, '!=', $message_id3, "new message_id: $message_id3"); # ListMembers @@ -124,10 +146,30 @@ cmp_ok($#{$arr}, '==', 1, "member count ok"); -cmp_ok($arr->[0]->{'full_name'}, '==', 'Dobrica Pavlinusic', "full_name"); -cmp_ok($arr->[0]->{'email'}, '==', 'dpavlin@rot13.org', "email"); +diag "arr = ", dump($arr) if ($debug); +cmp_ok($arr->[0]->{'name'}, 'eq', 'Dobrica Pavlinusic', "name"); +cmp_ok($arr->[0]->{'email'}, 'eq', 'dpavlin@rot13.org', "email"); -cmp_ok($arr->[1]->{'email'}, '==', 'nobody@example.com', "email"); +cmp_ok($arr->[1]->{'email'}, 'eq', 'nobody@example.com', "email"); + +# test sending + +ok(my $sent = $soap->SendTest({ + list => $list_name, + driver => 'Test', + sleep => 0, +})->result, "send_queued_messages for $list_name"); + +cmp_ok($sent, '==', 4, 'messages sent'); + +# replay to messages + +ok(my $received = $soap->MessagesReceived( + list => $list_name +)->result, "MessagesReceived for $list_name"); + +diag "received = ", dump($received) if ($debug); +cmp_ok( $received, '==', 0, 'no messages' ); # DeleteMember @@ -143,11 +185,11 @@ cmp_ok($#{$arr}, '==', 0, "member deleted"); -# DeleteList +# DropList -ok($soap->DeleteList({ +ok($soap->DropList({ list => $list_name, -})->result, "DeleteList named"); +})->result, "DropList named"); ok(my $has_members = $soap->ListMembers({ list => $list_name, @@ -155,15 +197,15 @@ cmp_ok($#{$has_members}, '==', -1, "ok, no members"); -ok($list_id = $soap->NewList({ +ok($list_id = $soap->CreateList({ list => $list_name, from => 'SOAP list', email => 'soap-test@example.com', -})->result, "NewList $list_name (recreated)"); +})->result, "CreateList $list_name (recreated)"); -ok($soap->DeleteList( +ok($soap->DropList( $list_name, -)->result, "DeleteList positional"); +)->result, "DropList positional"); ok($has_members = $soap->ListMembers({ list => $list_name, @@ -171,6 +213,8 @@ cmp_ok($#{$has_members}, '==', -1, "ok, no members"); +diag "I should add e-mail send test!"; + # kill server ok(kill('HUP' => $pid), "kill $pid"); @@ -180,3 +224,4 @@ ok(! kill(0, $pid), "child dead"); exit 1; +