0.003 -- test TODO
[gitmo/MooseX-InsideOut.git] / t / sub.t
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 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
17   my $get = eval { $obj->base_foo };
18   is($@, "", "$c: no errors getting attribute");
19   {
20     local $TODO = "don't clobber superclass' meta's create_instance"
21       if $c eq 'Moose';
22     is($get, 17, "$c: base_foo is 17");
23   }
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   
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 }