[BACK]Return to network_tests.t CVS log [TXT][DIR] Up to [local] / HOPE / Net-OpenAMD / t

Annotation of HOPE/Net-OpenAMD/t/network_tests.t, Revision 1.4

1.1       andrew      1: #!perl
                      2: package NetworkTests;
1.2       andrew      3:
1.4     ! andrew      4: # $AFresh1: network_tests.t,v 1.3 2010/06/26 16:50:40 andrew Exp $
1.1       andrew      5:
                      6: use strict;
                      7: use warnings;
                      8:
                      9: use Test::More;
                     10: use Net::OpenAMD;
                     11:
1.2       andrew     12: if ( !caller() ) {
                     13:     if ( $ENV{'NETWORK_TESTS'} ) {
                     14:
                     15:         # plan tests => ??;
1.1       andrew     16:     }
                     17:     else {
1.2       andrew     18:         plan skip_all => "Set env NETWORK_TESTS to test";
1.1       andrew     19:     }
                     20:
                     21:     my $amd = Net::OpenAMD->new();
                     22:     run_tests($amd);
                     23:
                     24:     done_testing();
                     25: }
                     26:
                     27: 1;
                     28:
                     29: sub run_tests {
                     30:     my ($amd) = @_;
                     31:
1.2       andrew     32:     my %tests = (
                     33:         location => [
                     34:             {   args   => undef,
1.4     ! andrew     35:                 expect => [
        !            36:                     {   'y'      => '83.1452331542969',
        !            37:                         'area'   => 'Engressia',
        !            38:                         'time'   => 2387,
        !            39:                         'user'   => 12983,
        !            40:                         'x'      => '46.7369918823242',
        !            41:                         'button' => 'False'
        !            42:                     }
        !            43:                 ],
1.2       andrew     44:             },
                     45:         ],
                     46:         speakers => [
                     47:             {   args   => undef,
1.4     ! andrew     48:                 expect => [
        !            49:                     {   'name' => 'Johnny',
        !            50:                         'bio'  => 'Johnny\'s bio'
        !            51:                     },
        !            52:                 ],
1.2       andrew     53:             },
                     54:         ],
                     55:         talks => [
                     56:             {   args   => undef,
1.4     ! andrew     57:                 expect => [
        !            58:                     {   'speakers'  => [ 'Judas', 'JohnnyX' ],
        !            59:                         'interests' => [ 'media', 'crypto' ],
        !            60:                         'time'      => '2008/7/18 13:00:00',
        !            61:                         'track'     => 'Hooper',
        !            62:                         'title' => 'Ancient Egyptian Music and DRM',
        !            63:                         'abstract' =>
        !            64:                             '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.'
        !            65:                     }
        !            66:                 ],
1.2       andrew     67:             },
                     68:         ],
                     69:         interests => [
                     70:             {   args   => undef,
1.4     ! andrew     71:                 expect => [
        !            72:                     'new tech',           'activism',
        !            73:                     'radio',              'lockpicking',
        !            74:                     'crypto',             'privacy',
        !            75:                     'ethics',             'telephones',
        !            76:                     'social engineering', 'hacker spaces',
        !            77:                     'hardware hacking',   'nostalgia',
        !            78:                     'communities',        'science',
        !            79:                     'government',         'network security',
        !            80:                     'malicious software', 'pen testing',
        !            81:                     'web',                'niche hacks',
        !            82:                     'media',
        !            83:                 ],
1.2       andrew     84:             },
                     85:         ],
                     86:         users => [
                     87:             {   args   => undef,
1.4     ! andrew     88:                 expect => [
        !            89:                     {   'name'      => 'JohnnyX',
        !            90:                         'x'         => '32.54091324',
        !            91:                         'y'         => '54.10958384',
        !            92:                         'interests' => [
        !            93:                             'new tech',           'radio',
        !            94:                             'lockpicking',        'crypto',
        !            95:                             'telephones',         'social engineering',
        !            96:                             'hacker spaces',      'hardware hacking',
        !            97:                             'nostalgia',          'communities',
        !            98:                             'science',            'network security',
        !            99:                             'malicious software', 'pen testing'
        !           100:                         ],
        !           101:                     }
        !           102:                 ]
1.2       andrew    103:             },
                    104:         ],
                    105:         stats => [
                    106:             {   args   => undef,
1.4     ! andrew    107:                 expect => qr/^Unused \s feature/xms,
1.2       andrew    108:             },
                    109:         ],
                    110:     );
                    111:
                    112:     foreach my $method ( keys %tests ) {
                    113:         foreach my $test ( @{ $tests{$method} } ) {
                    114:             no warnings 'uninitialized';
                    115:             my $result;
                    116:             eval { $result = $amd->$method( $test->{args} ) };
1.4     ! andrew    117:             if ( ref $test->{expect} eq 'Regexp' ) {
        !           118:                 like( $@, $test->{expect}, "AMD->$method($test->{args})" );
        !           119:             }
        !           120:             elsif ( ref $test->{expect} ) {
        !           121:                 is( $@, '', "AMD->$method($test->{args})" );
        !           122:                 is_deeply( $result, $test->{expect}, 'got expected result' );
        !           123:             }
        !           124:             else {
        !           125:                 is( $@, $test->{expect}, "AMD->$method($test->{args})" );
        !           126:             }
1.2       andrew    127:         }
                    128:     }
1.1       andrew    129: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>