Commit | Line | Data |
64468268 |
1 | use strict; |
2 | use warnings; |
3 | use Test::More tests => 28; |
4 | |
5 | use lib 't/lib'; |
6 | my @classes = qw(IO Array Hash Moose); |
7 | |
8 | my %TODO = ( |
9 | # Moose => "don't clobber superclass' meta's create_instance", |
10 | ); |
11 | |
12 | for my $c (@classes) { |
13 | my $base = "InsideOut::Base$c"; |
14 | my $sub = "InsideOut::Sub$c"; |
15 | eval "require $base;1" or die $@; |
16 | eval "require $sub;1" or die $@; |
17 | |
18 | my $obj = eval { $sub->new(base_foo => 17) }; |
19 | is($@, "", "$c: no errors creating object"); |
20 | |
21 | { |
22 | local $TODO = $TODO{$c} if exists $TODO{$c}; |
23 | |
24 | my $get = eval { $obj->base_foo }; |
25 | is($@, "", "$c: no errors getting attribute"); |
26 | is($get, 17, "$c: base_foo is 17"); |
27 | |
28 | my $set_base = eval { |
29 | $obj->base_foo(18); |
30 | $obj->base_foo; |
31 | }; |
32 | is($@, "", "$c: no errors setting base class attribute"); |
33 | is($set_base, 18, "$c: base_foo is 18"); |
34 | } |
35 | |
36 | my $set_sub = eval { |
37 | $obj->sub_foo(23); |
38 | $obj->sub_foo; |
39 | }; |
40 | is($@, "", "$c: no errors setting attribute"); |
41 | is($set_sub, 23, "$c: sub_foo is 23"); |
42 | |
43 | # diag MooseX::InsideOut::Meta::Instance->__dump($obj); |
44 | # use Data::Dumper; |
45 | # diag Dumper($obj); |
46 | |
47 | } |