=================================================================== RCS file: /cvs/HOPE/Net-OpenAMD/t/network_tests.t,v retrieving revision 1.9 retrieving revision 1.15 diff -u -r1.9 -r1.15 --- HOPE/Net-OpenAMD/t/network_tests.t 2010/07/13 03:27:06 1.9 +++ HOPE/Net-OpenAMD/t/network_tests.t 2010/07/17 13:10:48 1.15 @@ -1,7 +1,7 @@ #!perl package NetworkTests; -# $AFresh1: network_tests.t,v 1.8 2010/07/13 00:14:43 andrew Exp $ +# $AFresh1: network_tests.t,v 1.14 2010/07/17 11:46:47 andrew Exp $ use strict; use warnings; @@ -9,19 +9,19 @@ use Test::More; use Test::Deep; use Net::OpenAMD; -use Data::Dumper; +#use Data::Dumper; + if ( !caller() ) { if ( $ENV{'NETWORK_TESTS'} ) { - plan tests => 13; + plan tests => 14; } else { plan skip_all => 'Network test. Set $ENV{NETWORK_TESTS} to a true value to run.'; } - my $amd - = Net::OpenAMD->new( { base_uri => 'http://api.hope.net/api/', } ); + my $amd = Net::OpenAMD->new(); run_tests($amd); #done_testing(); @@ -47,56 +47,93 @@ ); my %cmp = ( single_line => re('^[^\n]+$'), - multi_line => re('^.*$'), + multi_line => re('(?xms:^.*$)'), digits => re('^\d+$'), track => any( 'Lovelace', 'Tesla', 'Bell', 'Hooper' ), area => any('Engressia'), interests => any(@interests), all_interests => bag(@interests), - coordinate => re('^\d\d\.\d+$'), + coordinate => re('^\d{1,2}\.\d+$'), boolean => any( 'True', 'False' ), ); - #$cmp{speaker} = $cmp{single_line}; + $cmp{user} = [ + $cmp{single_line}, + superhashof( + { name => $cmp{single_line}, + #interests => array_each( $cmp{interests} ), + #x => $cmp{coordinate}, + #y => $cmp{coordinate}, + } + ), + ]; + + $cmp{speaker} = [ + $cmp{single_line}, + { name => $cmp{single_line}, + bio => $cmp{multi_line}, + } + ]; + + $cmp{location} = superhashof( + { #area => $cmp{area}, + user => $cmp{single_line}, + + #button => $cmp{boolean}, + x => $cmp{coordinate}, + y => $cmp{coordinate}, + + #time => $cmp{single_line}, + } + ); + my %tests = ( location => [ { args => undef, - expect => array_each( - { area => $cmp{area}, - user => $cmp{digits}, - button => $cmp{boolean}, - x => $cmp{coordinate}, - y => $cmp{coordinate}, - time => $cmp{single_line}, - } - ), + expect => array_each( $cmp{location} ), }, - { args => { user => 'user0' }, - expect => array_each(), + { args => { user => 'user0' }, + expect => qr/^Invalid \s JSON|$/xms, }, + { args => { user => 'user0', limit => 5 }, + expect => qr/^Invalid \s JSON|$/xms, + }, + { args => { area => 'Lovelace' }, + expect => array_each( $cmp{location} ), + }, ], speakers => [ { args => undef, - expect => array_each( - { name => $cmp{single_line}, - bio => $cmp{multi_line}, - } - ), + expect => array_each( $cmp{speaker} ), }, + { args => { name => 'The Cheshire Catalyst' }, + expect => array_each( $cmp{speaker} ), + }, ], talks => [ { args => undef, expect => array_each( - { abstract => $cmp{single_line}, - interests => array_each( $cmp{interests} ), - speakers => array_each( $cmp{single_line} ), - time => $cmp{single_line}, - title => $cmp{multi_line}, - track => $cmp{track}, + { abstract => $cmp{multi_line}, + speakers => array_each( $cmp{single_line} ), + time => $cmp{single_line}, + title => $cmp{single_line}, + track => $cmp{track}, } ), }, + { args => { interests => 'lockpicking' }, + expect => array_each( + { abstract => $cmp{multi_line}, + speakers => array_each( $cmp{single_line} ), + time => $cmp{single_line}, + title => $cmp{single_line}, + track => $cmp{track}, + + # interests => 'lockpicking', + } + ), + }, ], interests => [ { args => undef, @@ -105,14 +142,17 @@ ], users => [ { args => undef, - expect => array_each( - { interests => array_each( $cmp{interests} ), - name => $cmp{single_line}, - x => $cmp{coordinate}, - y => $cmp{coordinate}, - } - ), + expect => array_each( $cmp{user} ), }, + { args => { user => 'user0' }, + expect => array_each( $cmp{user} ), + }, + { args => { user => 'user0', limit => 20 }, + expect => array_each( $cmp{user} ), + }, + { args => { interests => 'lockpicking' }, + expect => array_each( $cmp{user} ), + }, ], stats => [ { args => undef, @@ -130,10 +170,14 @@ like( $@, $test->{expect}, "AMD->$method($test->{args})" ); } elsif ( ref $test->{expect} ) { - is( $@, '', "AMD->$method($test->{args})" ); - cmp_deeply( $result, $test->{expect}, - "AMD->$method($test->{args}) - " - . 'got expected result' ); + if ($@) { + is( $@, '', "AMD->$method($test->{args})" ); + } + else { + cmp_deeply( $result, $test->{expect}, + "AMD->$method($test->{args}) - " + . 'got expected result' ); + } } else { is( $@, $test->{expect}, "AMD->$method($test->{args})" );