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