[Omaha.pm] Taunting Java

Jay Hannah jhannah at omnihotels.com
Wed Jan 10 11:48:50 PST 2007


LOL...

Looks like I added that Java stab back in 2003...

Damn I'm a funny guy. :)

j






use Test::More tests => 70;

use Model::t::HashTest;

my $hash = new Model::t::HashTest;

# Test adding scalar keys...
ok(defined $hash,                       '$hash defined');
ok($hash->add('A', 'Apple'),            '$hash->A added');
is($hash->A, 'Apple',                   '$hash->A returns Apple');
ok($hash->add(B, 'Barnyard'),           '$hash->B added');
is($hash->B, 'Barnyard',                '$hash->B returns Barnyard');
is($hash->A, 'Apple',                   '$hash->A is still Apple');

# Test overwrite...
ok($hash->add('A', 'Adam'),             '$hash->A overwritten w/ Adam');
is($hash->B, 'Barnyard',                '$hash->B returns Barnyard');
is($hash->A, 'Adam',                    '$hash->A returns Adam');
ok($hash->add('A', 'Apple'),            '$hash->A overwritten w/
Apple');
is($hash->B, 'Barnyard',                '$hash->B returns Barnyard');
is($hash->A, 'Apple',                   '$hash->A returns Apple');

# --------------------------------------------
# Test adding a key that is an object...
# --------------------------------------------
package Ping;          # Try this, Java!
sub ping { return "pong"; }
sub new { return bless {} }
package main;

my $ping = new Ping;
ok(defined $ping,                       '$ping defined');
ok($ping->ping eq "pong",               '$ping->ping passed');
ok($hash->add('Ping', $ping),           '$hash->$ping added');
ok($hash->Ping->ping eq "pong",         '$hash->Ping->ping is pong');
ok($hash->A eq 'Apple',                 '$hash->A is still Apple');
ok($hash->B eq 'Barnyard',              '$hash->B is still Barnyard');
# --------------------------------------------


...etc...


$ perl Hash.t 
1..70
ok 1 - $hash defined
ok 2 - $hash->A added
ok 3 - $hash->A returns Apple
ok 4 - $hash->B added
ok 5 - $hash->B returns Barnyard
ok 6 - $hash->A is still Apple
ok 7 - $hash->A overwritten w/ Adam
ok 8 - $hash->B returns Barnyard
ok 9 - $hash->A returns Adam
ok 10 - $hash->A overwritten w/ Apple
ok 11 - $hash->B returns Barnyard
ok 12 - $hash->A returns Apple
ok 13 - $ping defined
ok 14 - $ping->ping passed
ok 15 - $hash->$ping added
ok 16 - $hash->Ping->ping is pong
ok 17 - $hash->A is still Apple
ok 18 - $hash->B is still Barnyard
...etc...


More information about the Omaha-pm mailing list