This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Update Object-Accessor to CPAN version 0.38
[perl5.git] / cpan / Object-Accessor / t / 06_Object-Accessor-alias.t
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 my $Alias   = 'bar';
15
16 ok( $Object,                "Object created" );
17 isa_ok( $Object, $Class,    "   Object" );
18
19 ### add an accessor
20 {   my $rv = $Object->mk_accessors( $Acc );
21     ok( $rv,                "Created accessor '$Acc'" );
22     ok( $Object->$Acc( $$ ),"   Set value" );
23     is( $Object->$Acc, $$,  "   Retrieved value" );
24 }
25
26 ### add an alias
27 {   my $rv = $Object->mk_aliases( $Alias => $Acc );
28     ok( $rv,                "Created alias '$Alias'" );
29     ok( $Object->can( $Alias ),
30                             "   Alias '$Alias' exists" );
31     is( $Object->$Alias, $Object->$Acc,
32                             "   Alias & original return the same value" );
33
34     ok( $Object->$Alias( $$.$$ ),
35                             "   Changed value using alias" );
36     is( $Object->$Alias, $Object->$Acc,
37                             "   Alias & original return the same value" );
38 }
39
40 ### test if cloning works
41 {   my $clone = $Object->mk_clone;
42     ok( $clone,             "Cloned object" );
43
44     is_deeply( [sort $clone->ls_accessors], [sort $Object->ls_accessors],
45                             "   All accessors cloned" );
46
47     ok( $clone->$Acc( $$ ), "   Set value" );
48     is( $clone->$Alias, $clone->$Acc,
49                             "   Alias & original return the same value" );
50
51     ok( $clone->$Alias( $$.$$ ),
52                             "   Changed value using alias" );
53     is( $clone->$Alias, $clone->$Acc,
54                             "   Alias & original return the same value" );
55 }
56