Commit | Line | Data |
0bbb0bd4 |
1 | BEGIN { chdir 't' if -d 't' }; |
2 | |
3 | use strict; |
4 | use lib '../lib'; |
5 | use Test::More 'no_plan'; |
6 | use Data::Dumper; |
7 | |
8 | my $Class = 'Object::Accessor'; |
9 | |
10 | use_ok($Class); |
11 | |
12 | my $Object = $Class->new; |
13 | my $Acc = 'foo'; |
14 | |
15 | ### stupid warnings |
16 | ### XXX this will break warning tests though if enabled |
17 | $Object::Accessor::DEBUG = $Object::Accessor::DEBUG = 1 if @ARGV; |
18 | |
19 | |
20 | ### check the object |
21 | { ok( $Object, "Object of '$Class' created" ); |
22 | isa_ok( $Object, $Class ); |
23 | } |
24 | |
25 | ### create an accessor; |
26 | { my $warning; |
27 | local $SIG{__WARN__} = sub { $warning .= "@_" }; |
28 | |
29 | ok( $Object->mk_accessors( $Acc ), |
30 | "Accessor '$Acc' created" ); |
31 | |
32 | ok( $Object->can( $Acc ), " Can '$Acc'" ); |
33 | ok(!$warning, " No warnings logged" ); |
34 | |
35 | |
36 | } |
37 | |
38 | ### scoped variables |
39 | { ok( 1, "Testing scoped values" ); |
40 | |
41 | $Object->$Acc( $$ ); |
42 | is( $Object->$Acc, $$, " Value set to $$" ); |
43 | |
44 | ### set it to a scope |
45 | { $Object->$Acc( $0 => \my $temp ); |
46 | is( $Object->$Acc, $0, " Value set to $0" ); |
47 | } |
48 | |
49 | is( $Object->$Acc, $$, " Value restored to $$" ); |
50 | } |