Commit | Line | Data |
d7f17ebb |
1 | #!/usr/bin/perl |
2 | |
3 | use strict; |
4 | use warnings; |
5 | |
6 | use lib 't/lib', 'lib'; |
7 | |
a28e50e4 |
8 | use Test::More; |
b10dde3a |
9 | use Test::Fatal; |
7ff56534 |
10 | |
d7f17ebb |
11 | |
d7f17ebb |
12 | { |
6b584f6c |
13 | |
d7f17ebb |
14 | package Bar; |
d7f17ebb |
15 | use Moose; |
d03bd989 |
16 | |
b10dde3a |
17 | ::is( ::exception { extends 'Foo' }, undef, 'loaded Foo superclass correctly' ); |
d7f17ebb |
18 | } |
19 | |
20 | { |
6b584f6c |
21 | |
d7f17ebb |
22 | package Baz; |
d7f17ebb |
23 | use Moose; |
d03bd989 |
24 | |
b10dde3a |
25 | ::is( ::exception { extends 'Bar' }, undef, 'loaded (inline) Bar superclass correctly' ); |
d7f17ebb |
26 | } |
27 | |
28 | { |
6b584f6c |
29 | |
d7f17ebb |
30 | package Foo::Bar; |
d7f17ebb |
31 | use Moose; |
d03bd989 |
32 | |
b10dde3a |
33 | ::is( ::exception { extends 'Foo', 'Bar' }, undef, 'loaded Foo and (inline) Bar superclass correctly' ); |
d7f17ebb |
34 | } |
35 | |
7eaef7ad |
36 | { |
6b584f6c |
37 | |
7eaef7ad |
38 | package Bling; |
7eaef7ad |
39 | use Moose; |
d03bd989 |
40 | |
b10dde3a |
41 | ::like( ::exception { extends 'No::Class' }, qr{Can't locate No/Class\.pm in \@INC}, 'correct error when superclass could not be found' ); |
7eaef7ad |
42 | } |
43 | |
2e7f6cf4 |
44 | { |
45 | package Affe; |
46 | our $VERSION = 23; |
47 | } |
48 | |
49 | { |
50 | package Tiger; |
51 | use Moose; |
52 | |
b10dde3a |
53 | ::is( ::exception { extends 'Foo', Affe => { -version => 13 } }, undef, 'extends with version requirement' ); |
2e7f6cf4 |
54 | } |
55 | |
56 | { |
57 | package Birne; |
58 | use Moose; |
59 | |
b10dde3a |
60 | ::like( ::exception { extends 'Foo', Affe => { -version => 42 } }, qr/Affe version 42 required--this is only version 23/, 'extends with unsatisfied version requirement' ); |
2e7f6cf4 |
61 | } |
62 | |
a28e50e4 |
63 | done_testing; |