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 | |
64468268 |
8 | for my $c (@classes) { |
9 | my $base = "InsideOut::Base$c"; |
10 | my $sub = "InsideOut::Sub$c"; |
11 | eval "require $base;1" or die $@; |
12 | eval "require $sub;1" or die $@; |
13 | |
14 | my $obj = eval { $sub->new(base_foo => 17) }; |
15 | is($@, "", "$c: no errors creating object"); |
16 | |
55a9ddc1 |
17 | my $get = eval { $obj->base_foo }; |
18 | is($@, "", "$c: no errors getting attribute"); |
64468268 |
19 | { |
55a9ddc1 |
20 | local $TODO = "don't clobber superclass' meta's create_instance" |
21 | if $c eq 'Moose'; |
64468268 |
22 | is($get, 17, "$c: base_foo is 17"); |
64468268 |
23 | } |
55a9ddc1 |
24 | |
25 | my $set_base = eval { |
26 | $obj->base_foo(18); |
27 | $obj->base_foo; |
28 | }; |
29 | is($@, "", "$c: no errors setting base class attribute"); |
30 | is($set_base, 18, "$c: base_foo is 18"); |
31 | |
64468268 |
32 | my $set_sub = eval { |
33 | $obj->sub_foo(23); |
34 | $obj->sub_foo; |
35 | }; |
36 | is($@, "", "$c: no errors setting attribute"); |
37 | is($set_sub, 23, "$c: sub_foo is 23"); |
38 | |
39 | # diag MooseX::InsideOut::Meta::Instance->__dump($obj); |
40 | # use Data::Dumper; |
41 | # diag Dumper($obj); |
42 | |
43 | } |