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