Require Dist::Zilla 4.200016+
[gitmo/Moose.git] / t / basics / require_superclasses.t
CommitLineData
d7f17ebb 1#!/usr/bin/perl
2
3use strict;
4use warnings;
5
6use lib 't/lib', 'lib';
7
a28e50e4 8use Test::More;
b10dde3a 9use 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 63done_testing;