BEGIN { chdir 't' if -d 't' };
use strict;
use lib '../lib';
use Test::More 'no_plan';
use Data::Dumper;
my $Class = 'Object::Accessor';
use_ok($Class);
my $Object = $Class->new;
my $Acc = 'foo';
### stupid warnings
### XXX this will break warning tests though if enabled
$Object::Accessor::DEBUG = $Object::Accessor::DEBUG = 1 if @ARGV;
### check the object
{ ok( $Object, "Object of '$Class' created" );
isa_ok( $Object, $Class );
}
### create an accessor;
{ my $warning;
local $SIG{__WARN__} = sub { $warning .= "@_" };
ok( $Object->mk_accessors( $Acc ),
"Accessor '$Acc' created" );
ok( $Object->can( $Acc ), " Can '$Acc'" );
ok(!$warning, " No warnings logged" );
}
### scoped variables
{ ok( 1, "Testing scoped values" );
$Object->$Acc( $$ );
is( $Object->$Acc, $$, " Value set to $$" );
### set it to a scope
{ $Object->$Acc( $0 => \my $temp );
is( $Object->$Acc, $0, " Value set to $0" );
}
is( $Object->$Acc, $$, " Value restored to $$" );
}