1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
#!/usr/bin/perl
# Simple tests for a simple module
use strict;
BEGIN {
$| = 1;
$^W = 1;
}
use Test::More tests => 12;
# Define a class
SCOPE: {
eval "
package Bar;
sub new {
my \$class = shift;
return bless { \@_ }, \$class;
}
package Foo;
\@Foo::ISA = 'Bar';
use Object::Tiny qw{ foo bar };
";
ok( ! $@, 'Created package without error' );
}
# Create a trivial object
SCOPE: {
my $empty = Foo->new;
isa_ok( $empty, 'Foo' );
isa_ok( $empty, 'Bar' );
ok( ! $empty->isa('Object::Tiny'), 'Is not an Object::Tiny' );
is( scalar( keys %$empty ), 0, 'Empty object is empty' );
}
# Create a real object
SCOPE: {
my $object = Foo->new( foo => 1, bar => 2, baz => 3 );
isa_ok( $object, 'Foo' );
isa_ok( $object, 'Bar' );
is( scalar( keys %$object ), 3, 'Object contains expect elements' );
is( $object->foo, 1, '->foo ok' );
is( $object->bar, 2, '->bar ok' );
eval {
$object->baz;
};
ok( $@, '->bar returns an error' );
is( $object->{baz}, 3, '->{baz} does contain value' );
}
|