6 use Test::More skip_all => '[TODO] a Moose class cannot extends a Mouse class';
11 eval{ require Moose && Moose->VERSION(Mouse::Spec->MooseVersion) };
12 plan skip_all => "Moose $Mouse::Spec::MooseVersion required for this test" if $@;
29 ::lives_ok { extends qw(Foo) } "extend Mouse class with Moose";
36 } "new attr in subclass";
41 ::lives_ok { extends qw(Foo) } "extend Mouse class with Moose";
47 } "clone and inherit attr in subclass";
60 ::lives_ok { extends qw(Quxx) } "extend Mouse class with Moose";
68 can_ok( Bar => "new" );
70 my $bar = eval { Bar->new };
72 ok( $bar, "got an object" );
73 isa_ok( $bar, "Bar" );
74 isa_ok( $bar, "Foo" );
76 can_ok( $bar, qw(foo bar) );
78 is( eval { $bar->foo }, undef, "no default value" );
79 is( eval { $bar->bar }, undef, "no default value" );
83 [ sort map { $_->name } Bar->meta->get_all_attributes ],
88 is( Gorch->new->foo, 3, "cloned and inherited attr's default" );
91 can_ok( Zork => "new" );
94 my $zork = eval { Zork->new };
96 ok( $zork, "got an object" );
97 isa_ok( $zork, "Zork" );
98 isa_ok( $zork, "Quxx" );
100 can_ok( $zork, qw(quxx zork) );
102 is( $bar->quxx, "lala", "default value" );
103 is( $bar->zork, 42, "default value" );
107 my $zork = eval { Zork->new( zork => "diff", quxx => "blah" ) };
109 ok( $zork, "got an object" );
110 isa_ok( $zork, "Zork" );
111 isa_ok( $zork, "Quxx" );
113 can_ok( $zork, qw(quxx zork) );
115 is( $bar->quxx, "blah", "constructor param" );
116 is( $bar->zork, "diff", "constructor param" );