#########################
use Test ;
BEGIN { plan tests => 42 } ;
#########################
{
eval { require "test/classtest.pm" } ;
ok(!$@) ;
my $foo = new Foo(123) ;
ok($foo) ;
ok( join(' ',@Foo::ISA) , "Bar Baz Class::HPLOO::Base UNIVERSAL") ;
$foo->test_arg(456) ;
ok( $foo->{arg1} , 456 ) ;
$foo->test_ref(123 , [qw(a b)] , {k1 => 11 , k2 => 22}) ;
ok( $foo->{arg2} , 123 ) ;
ok( $foo->{l0} , 'a' ) ;
ok( $foo->{l1} , 'b' ) ;
ok( $foo->{opts}{k1} , 11 ) ;
ok( $foo->{opts}{k2} , 22 ) ;
}
#########################
{
eval { require "test/classtest2.pm" } ;
ok(!$@) ;
print "$@\n" if $@ ;
##print "$Class::HPLOO::SYNTAX\n" ;
}
#########################
{
eval { require "test/foo.pm" } ;
ok(!$@) ;
print ">> $@\n" if $@ ;
my $foo = new foo();
$foo->{A} = 123 ;
ok($foo->{A} , 123) ;
my $ret = $foo->test ;
ok( $ret , q`foo
--------------
MOHHHH 123456789
--------------
MOHHHH 123 456 789
--------------
`);
}
#########################
{
eval { require "test/attr.pm" } ;
ok(!$@) ;
print ">> $@\n" if $@ ;
my $foo = new Foo ;
ok($foo);
ok( $foo->set_name("mohh") ) ;
ok( $foo->get_name , 'mohh' ) ;
ok( $foo->set_age(123) ) ;
ok( $foo->get_age , 123 ) ;
ok( $foo->{size} = 456 ) ;
ok( $foo->{size} , '456.0' ) ;
ok( $foo->get_size , '456.0' ) ;
ok( $foo->set_size(1.14) ) ;
ok( $foo->{size} , '1.14' ) ;
ok( $foo->get_size , '1.14' ) ;
ok( $foo->set_list(qw(a b c)) ) ;
my @l = $foo->get_list ;
ok( join(" ",@l) , 'a b c' ) ;
ok( $#{$foo->{list}} , 2 ) ;
ok( $foo->set_special(["wwwaaaaa","isssaaa"]) ) ;
@l = @{ $foo->get_special } ;
ok( join(" ", @l) , 'wa isa' ) ;
ok( join(" ", @{$foo->{special}}) , 'wa isa' ) ;
my $call0 = $foo->call ;
my $call1 = $foo->{call} ;
ok($call0 , $call1) ;
}
#########################
{
eval { require "test/testsuper.pm" } ;
ok(!$@) ;
print "$@\n" if $@ ;
my $t = new TestSuper() ;
ok($t , $t->{2}) ;
ok($t->{2} , $t->{3}) ;
ok($t->{id} , 1);
ok($t != $t->{n2}) ;
ok($t->{n2}->{id} , 3);
ok($t->{n2} != $t->{n3}) ;
ok($t->{n3}->{id} , 2);
ok($t->{n2}->{n3}->{id} , 4);
ok($TestSuper3::id , 4) ;
}
#########################
print "By!\n" ;