6 use Test::More tests => 6;
19 bless { no_moose => "Elk" } => $class;
22 sub no_moose { $_[0]->{no_moose} }
29 has 'moose' => ( is => 'ro', default => 'Foo' );
33 my $super = $class->SUPER::new(@_);
34 return $class->meta->new_object( '__INSTANCE__' => $super, @_ );
37 __PACKAGE__->meta->make_immutable( debug => 0 );
40 use metaclass 'Class::MOP::Class';
42 __PACKAGE__->meta->add_attribute(
43 'squeegee' => ( accessor => 'squeegee' ) );
45 package Old::Bucket::Nose;
47 # see http://www.moosefoundation.org/moose_facts.htm
55 package Custom::Meta1;
56 use base qw(Moose::Meta::Class);
58 package Custom::Meta2;
59 use base qw(Moose::Meta::Class);
62 use metaclass 'Custom::Meta1';
68 use metaclass 'Custom::Meta2';
71 # XXX FIXME subclassing meta-attrs and immutable-ing the subclass fails
74 my $foo_moose = Foo::Moose->new();
75 isa_ok( $foo_moose, 'Foo::Moose' );
76 isa_ok( $foo_moose, 'Elk' );
78 is( $foo_moose->no_moose, 'Elk',
79 '... got the right value from the Elk method' );
80 is( $foo_moose->moose, 'Foo',
81 '... got the right value from the Foo::Moose method' );
84 Old::Bucket::Nose->meta->make_immutable( debug => 0 );
86 'Immutability on Moose class extending Class::MOP class ok';
89 SubClass2->meta->superclasses('MyBase');
91 'Can subclass the same non-Moose class twice with different metaclasses';