=================================================================== RCS file: /cvs/HOPE/Net-OpenAMD/t/network_tests.t,v retrieving revision 1.3 retrieving revision 1.8 diff -u -r1.3 -r1.8 --- HOPE/Net-OpenAMD/t/network_tests.t 2010/06/26 17:50:40 1.3 +++ HOPE/Net-OpenAMD/t/network_tests.t 2010/07/13 01:14:43 1.8 @@ -1,74 +1,315 @@ #!perl package NetworkTests; -# $AFresh1: network_tests.t,v 1.2 2010/06/26 16:47:01 andrew Exp $ +# $AFresh1: network_tests.t,v 1.7 2010/06/30 18:04:20 andrew Exp $ use strict; use warnings; use Test::More; use Net::OpenAMD; +use Data::Dumper; if ( !caller() ) { if ( $ENV{'NETWORK_TESTS'} ) { - - # plan tests => ??; + plan tests => 13; } else { - plan skip_all => "Set env NETWORK_TESTS to test"; + plan skip_all => + 'Network test. Set $ENV{NETWORK_TESTS} to a true value to run.'; } - my $amd = Net::OpenAMD->new(); - run_tests($amd); - - done_testing(); -} - -1; - -sub run_tests { - my ($amd) = @_; - my %tests = ( location => [ { args => undef, - expect => {}, + expect => [ + { 'y' => '43.4861220266', + 'user' => 'user6', + 'x' => '18.2468971683' + }, + { 'y' => '36.5212503999', + 'user' => 'user7', + 'x' => '27.138154414' + }, + { 'y' => '45.4561205517', + 'user' => 'user4', + 'x' => '43.2247016461' + }, + { 'y' => '33.3876312219', + 'user' => 'user5', + 'x' => '1.88999914202' + }, + { 'y' => '6.24512871596', + 'user' => 'user2', + 'x' => '19.3851425782' + }, + { 'y' => '11.5686903901', + 'user' => 'user3', + 'x' => '37.0118334017' + }, + { 'y' => '39.6231665024', + 'user' => 'user0', + 'x' => '4.80925926012' + }, + { 'y' => '30.0999230116', + 'user' => 'user1', + 'x' => '1.48091119245' + }, + { 'y' => '44.0085836003', + 'user' => 'user8', + 'x' => '15.5482823414' + }, + { 'y' => '35.8354729961', + 'user' => 'user9', + 'x' => '1.3539559599' + }, + { 'y' => '23.0220504783', + 'user' => 'user10', + 'x' => '16.5797941904' + }, + { 'y' => '18.1245161319', + 'user' => 'user11', + 'x' => '39.2951848533' + }, + { 'y' => '11.3998081612', + 'user' => 'user12', + 'x' => '3.99920632586' + }, + { 'y' => '13.1865736157', + 'user' => 'user13', + 'x' => '20.5159017473' + }, + { 'y' => '17.742550877', + 'user' => 'user14', + 'x' => '4.55691655225' + }, + { 'y' => '18.7671525659', + 'user' => 'user15', + 'x' => '0.262498111169' + }, + { 'y' => '44.2762837418', + 'user' => 'user16', + 'x' => '35.5124464395' + }, + { 'y' => '36.5340075619', + 'user' => 'user17', + 'x' => '9.14220464394' + }, + { 'y' => '29.2264569149', + 'user' => 'user18', + 'x' => '3.47406301583' + }, + { 'y' => '1.68159309609', + 'user' => 'user19', + 'x' => '1.41024785197' + } + ], }, + { args => [ user => 'user0' ], + expect => [], + }, ], speakers => [ { args => undef, - expect => {}, + expect => [ + [ '9000', + { 'name' => 'The Cheshire Catalyst', + 'bio' => 'Jacob\'s bio' + } + ], + [ 'user0', + { 'name' => 'Jacob', + 'bio' => 'Jacob\'s bio' + } + ], + [ 'user1', + { 'name' => 'Emma', + 'bio' => 'Emma\'s bio' + } + ], + [ 'user10', + { 'name' => 'Alexander', + 'bio' => 'Alexander\'s bio' + } + ], + [ 'user11', + { 'name' => 'Olivia', + 'bio' => 'Olivia\'s bio' + } + ], + [ 'user12', + { 'name' => 'Anthony', + 'bio' => 'Anthony\'s bio' + } + ], + [ 'user13', + { 'name' => 'Sophia', + 'bio' => 'Sophia\'s bio' + } + ], + [ 'user14', + { 'name' => 'William', + 'bio' => 'William\'s bio' + } + ], + [ 'user15', + { 'name' => 'Abigail', + 'bio' => 'Abigail\'s bio' + } + ], + [ 'user16', + { 'name' => 'Christopher', + 'bio' => 'Christopher\'s bio' + } + ], + [ 'user17', + { 'name' => 'Elizabeth', + 'bio' => 'Elizabeth\'s bio' + } + ], + [ 'user18', + { 'name' => 'Matthew', + 'bio' => 'Matthew\'s bio' + } + ], + [ 'user19', + { 'name' => 'Chloe', + 'bio' => 'Chloe\'s bio' + } + ], + [ 'user2', + { 'name' => 'Michael', + 'bio' => 'Michael\'s bio' + } + ], + [ 'user3', + { 'name' => 'Isabella', + 'bio' => 'Isabella\'s bio' + } + ], + [ 'user4', + { 'name' => 'Ethan', + 'bio' => 'Ethan\'s bio' + } + ], + [ 'user5', + { 'name' => 'Emily', + 'bio' => 'Emily\'s bio' + } + ], + [ 'user6', + { 'name' => 'Joshua', + 'bio' => 'Joshua\'s bio' + } + ], + [ 'user7', + { 'name' => 'Madison', + 'bio' => 'Madison\'s bio' + } + ], + [ 'user8', + { 'name' => 'Daniel', + 'bio' => 'Daniel\'s bio' + } + ], + [ 'user9', + { 'name' => 'Ava', + 'bio' => 'Ava\'s bio' + }, + ], + ], }, ], talks => [ { args => undef, - expect => {}, + expect => [ + [ 'Hacking Democracy: An In Depth Analysis of the ES&S Voting Systems', + { 'speakers' => + '["Matt Blaze", "Sandy Clark", "Eric Cronin", "Gaurav Shah", "Micah Sherr", "Adam Aviv", "Pavol Cerny"]', + 'interests' => '["crypto", "telephones"]', + 'time' => '2008/07/14 13:00:00', + 'track' => 'Hooper', + 'abstract' => ' + This talk will outline the U. Penn team\'s findings, which included + the discovery of exploitable security vulnerabilities in almost every + hardware and software component of the ES&S touch-screen and optical + scan systems. + ', + 'title' => + 'Hacking Democracy: An In Depth Analysis of the ES&S Voting Systems', + }, + ], + ], }, ], interests => [ { args => undef, - expect => {}, + expect => [ + 'new tech', + 'activism', + 'radio', + 'lockpicking', + 'crypto', + 'privacy', + 'ethics', + 'telephones', + 'social engineering', + 'hacker spaces', + 'hardware hacking', + 'nostalgia', + 'communities', + 'science', + 'government', + 'network security', + 'malicious software', + 'pen testing', + 'web', + 'niche hacks', + 'media', + ], }, ], users => [ { args => undef, - expect => {}, + expect => [], }, ], stats => [ { args => undef, - expect => {}, + expect => qr/^Unused \s feature/xms, }, ], ); - foreach my $method ( keys %tests ) { - foreach my $test ( @{ $tests{$method} } ) { + my $amd + = Net::OpenAMD->new( { base_uri => 'http://api.hope.net/api/', } ); + run_tests( $amd, \%tests ); + + #done_testing(); +} + +1; + +sub run_tests { + my ( $amd, $tests ) = @_; + + foreach my $method ( keys %{$tests} ) { + foreach my $test ( @{ $tests->{$method} } ) { no warnings 'uninitialized'; my $result; eval { $result = $amd->$method( $test->{args} ) }; - is( $@, undef, "AMD->$method($test->{args})" ); - is( $result, $test->{expect}, 'got expected result' ); + if ( ref $test->{expect} eq 'Regexp' ) { + like( $@, $test->{expect}, "AMD->$method($test->{args})" ); + } + elsif ( ref $test->{expect} ) { + is( $@, '', "AMD->$method($test->{args})" ); + is_deeply( $result, $test->{expect}, + "AMD->$method($test->{args}) - " + . 'got expected result' ); + } + else { + is( $@, $test->{expect}, "AMD->$method($test->{args})" ); + } } } }