version 1.10, 2010/07/13 04:23:48 |
version 1.15, 2010/07/17 13:10:48 |
|
|
#!perl |
#!perl |
package NetworkTests; |
package NetworkTests; |
|
|
# $AFresh1: network_tests.t,v 1.9 2010/07/13 02:27:06 andrew Exp $ |
# $AFresh1: network_tests.t,v 1.14 2010/07/17 11:46:47 andrew Exp $ |
|
|
use strict; |
use strict; |
use warnings; |
use warnings; |
|
|
use Test::More; |
use Test::More; |
use Test::Deep; |
use Test::Deep; |
use Net::OpenAMD; |
use Net::OpenAMD; |
use Data::Dumper; |
|
|
|
|
#use Data::Dumper; |
|
|
if ( !caller() ) { |
if ( !caller() ) { |
if ( $ENV{'NETWORK_TESTS'} ) { |
if ( $ENV{'NETWORK_TESTS'} ) { |
plan tests => 13; |
plan tests => 14; |
} |
} |
else { |
else { |
plan skip_all => |
plan skip_all => |
'Network test. Set $ENV{NETWORK_TESTS} to a true value to run.'; |
'Network test. Set $ENV{NETWORK_TESTS} to a true value to run.'; |
} |
} |
|
|
my $amd |
my $amd = Net::OpenAMD->new(); |
= Net::OpenAMD->new( { base_uri => 'http://api.hope.net/api/', } ); |
|
run_tests($amd); |
run_tests($amd); |
|
|
#done_testing(); |
#done_testing(); |
|
|
area => any('Engressia'), |
area => any('Engressia'), |
interests => any(@interests), |
interests => any(@interests), |
all_interests => bag(@interests), |
all_interests => bag(@interests), |
coordinate => re('^\d\d\.\d+$'), |
coordinate => re('^\d{1,2}\.\d+$'), |
boolean => any( 'True', 'False' ), |
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 = ( |
my %tests = ( |
location => [ |
location => [ |
{ args => undef, |
{ args => undef, |
expect => array_each( |
expect => array_each( $cmp{location} ), |
{ area => $cmp{area}, |
|
user => $cmp{digits}, |
|
button => $cmp{boolean}, |
|
x => $cmp{coordinate}, |
|
y => $cmp{coordinate}, |
|
time => $cmp{single_line}, |
|
} |
|
), |
|
}, |
}, |
{ args => { user => 'user0' }, |
{ args => { user => 'user0' }, |
expect => array_each(), |
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 => [ |
speakers => [ |
{ args => undef, |
{ args => undef, |
expect => array_each( |
expect => array_each( $cmp{speaker} ), |
[ $cmp{single_line}, |
|
{ name => $cmp{single_line}, |
|
bio => $cmp{multi_line}, |
|
} |
|
] |
|
), |
|
}, |
}, |
|
{ args => { name => 'The Cheshire Catalyst' }, |
|
expect => array_each( $cmp{speaker} ), |
|
}, |
], |
], |
talks => [ |
talks => [ |
{ args => undef, |
{ args => undef, |
|
|
} |
} |
), |
), |
}, |
}, |
|
{ 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 => [ |
interests => [ |
{ args => undef, |
{ args => undef, |
|
|
], |
], |
users => [ |
users => [ |
{ args => undef, |
{ args => undef, |
expect => array_each( |
expect => array_each( $cmp{user} ), |
$cmp{single_line}, |
|
{ name => $cmp{single_line}, |
|
|
|
#interests => array_each( $cmp{interests} ), |
|
#x => $cmp{coordinate}, |
|
#y => $cmp{coordinate}, |
|
} |
|
), |
|
}, |
}, |
|
{ 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 => [ |
stats => [ |
{ args => undef, |
{ args => undef, |
|
|
like( $@, $test->{expect}, "AMD->$method($test->{args})" ); |
like( $@, $test->{expect}, "AMD->$method($test->{args})" ); |
} |
} |
elsif ( ref $test->{expect} ) { |
elsif ( ref $test->{expect} ) { |
is( $@, '', "AMD->$method($test->{args})" ); |
if ($@) { |
cmp_deeply( $result, $test->{expect}, |
is( $@, '', "AMD->$method($test->{args})" ); |
"AMD->$method($test->{args}) - " |
} |
. 'got expected result' ); |
else { |
|
cmp_deeply( $result, $test->{expect}, |
|
"AMD->$method($test->{args}) - " |
|
. 'got expected result' ); |
|
} |
} |
} |
else { |
else { |
is( $@, $test->{expect}, "AMD->$method($test->{args})" ); |
is( $@, $test->{expect}, "AMD->$method($test->{args})" ); |