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

File: [local] / HOPE / Net-OpenAMD / t / network_tests.t (download)

Revision 1.8, Tue Jul 13 00:14:43 2010 UTC (13 years, 11 months ago) by andrew
Branch: MAIN
Changes since 1.7: +13 -4 lines

tests don't pass, need a better testing mechanism

#!perl
package NetworkTests;

# $AFresh1: network_tests.t,v 1.8 2010/07/13 00:14:43 andrew Exp $

use strict;
use warnings;

use Test::More;
use Net::OpenAMD;
use Data::Dumper;

if ( !caller() ) {
    if ( $ENV{'NETWORK_TESTS'} ) {
        plan tests => 13;
    }
    else {
        plan skip_all =>
            'Network test.  Set $ENV{NETWORK_TESTS} to a true value to run.';
    }

    my %tests = (
        location => [
            {   args   => undef,
                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 => [
                    [   '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 => [
                    [   '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 => [
                    '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 => [],
            },
        ],
        stats => [
            {   args   => undef,
                expect => qr/^Unused \s feature/xms,
            },
        ],
    );

    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} ) };
            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})" );
            }
        }
    }
}