import 0.001
[gitmo/MooseX-InsideOut.git] / t / sub.t
CommitLineData
64468268 1use strict;
2use warnings;
3use Test::More tests => 28;
4
5use lib 't/lib';
6my @classes = qw(IO Array Hash Moose);
7
8my %TODO = (
9# Moose => "don't clobber superclass' meta's create_instance",
10);
11
12for 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}