remove trailing whitespace
[gitmo/Moose.git] / t / 050_metaclasses / 003_moose_w_metaclass.t
CommitLineData
7eaef7ad 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
7ff56534 6use Test::More tests => 4;
7eaef7ad 7use Test::Exception;
8
7ff56534 9
7eaef7ad 10
bbd2fe69 11=pod
12
d03bd989 13This test demonstrates that Moose will respect
14a metaclass previously set with the metaclass
15pragma.
bbd2fe69 16
d03bd989 17It also checks an error condition where that
bbd2fe69 18metaclass must be a Moose::Meta::Class subclass
19in order to work.
20
21=cut
22
7eaef7ad 23
24{
25 package Foo::Meta;
26 use strict;
27 use warnings;
28
29 use base 'Moose::Meta::Class';
d03bd989 30
7eaef7ad 31 package Foo;
32 use strict;
33 use warnings;
34 use metaclass 'Foo::Meta';
35 ::use_ok('Moose');
36}
37
38isa_ok(Foo->meta, 'Foo::Meta');
39
40{
41 package Bar::Meta;
42 use strict;
43 use warnings;
d03bd989 44
7eaef7ad 45 use base 'Class::MOP::Class';
d03bd989 46
7eaef7ad 47 package Bar;
48 use strict;
49 use warnings;
50 use metaclass 'Bar::Meta';
51 eval 'use Moose;';
52 ::ok($@, '... could not load moose without correct metaclass');
d03bd989 53 ::like($@,
50d5df60 54 qr/^Bar already has a metaclass, but it does not inherit Moose::Meta::Class/,
66bcefc1 55 '... got the right error too');
7eaef7ad 56}