=================================================================== RCS file: /cvs/HOPE/Net-OpenAMD/t/network_tests.t,v retrieving revision 1.1 retrieving revision 1.4 diff -u -r1.1 -r1.4 --- HOPE/Net-OpenAMD/t/network_tests.t 2010/06/26 17:33:33 1.1 +++ HOPE/Net-OpenAMD/t/network_tests.t 2010/06/27 01:52:33 1.4 @@ -1,19 +1,21 @@ #!perl package NetworkTests; -# $AFresh1$ +# $AFresh1: network_tests.t,v 1.3 2010/06/26 16:50:40 andrew Exp $ + use strict; use warnings; use Test::More; use Net::OpenAMD; -if (!caller()) { - if ($ENV{'NETWORK_TESTS'}) { - # plan tests => ??; +if ( !caller() ) { + if ( $ENV{'NETWORK_TESTS'} ) { + + # plan tests => ??; } else { - plan skip_all => "Set env NETWORK_TESTS to test" + plan skip_all => "Set env NETWORK_TESTS to test"; } my $amd = Net::OpenAMD->new(); @@ -27,5 +29,101 @@ sub run_tests { my ($amd) = @_; - ok(1); + my %tests = ( + location => [ + { args => undef, + expect => [ + { 'y' => '83.1452331542969', + 'area' => 'Engressia', + 'time' => 2387, + 'user' => 12983, + 'x' => '46.7369918823242', + 'button' => 'False' + } + ], + }, + ], + speakers => [ + { args => undef, + expect => [ + { 'name' => 'Johnny', + 'bio' => 'Johnny\'s bio' + }, + ], + }, + ], + talks => [ + { args => undef, + expect => [ + { 'speakers' => [ 'Judas', 'JohnnyX' ], + 'interests' => [ 'media', 'crypto' ], + 'time' => '2008/7/18 13:00:00', + 'track' => 'Hooper', + 'title' => 'Ancient Egyptian Music and DRM', + 'abstract' => + 'A discussion of the development of musical notation, which was designed as a means of reproducing music while making it impossible for the general public to perform without permission.' + } + ], + }, + ], + interests => [ + { args => undef, + 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 => [ + { 'name' => 'JohnnyX', + 'x' => '32.54091324', + 'y' => '54.10958384', + 'interests' => [ + 'new tech', 'radio', + 'lockpicking', 'crypto', + 'telephones', 'social engineering', + 'hacker spaces', 'hardware hacking', + 'nostalgia', 'communities', + 'science', 'network security', + 'malicious software', 'pen testing' + ], + } + ] + }, + ], + stats => [ + { args => undef, + expect => qr/^Unused \s feature/xms, + }, + ], + ); + + foreach my $method ( keys %tests ) { + foreach my $test ( @{ $tests{$method} } ) { + no warnings 'uninitialized'; + my $result; + eval { $result = $amd->$method( $test->{args} ) }; + 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}, 'got expected result' ); + } + else { + is( $@, $test->{expect}, "AMD->$method($test->{args})" ); + } + } + } }