convert all uses of Test::Exception to Test::Fatal.
[gitmo/Class-MOP.git] / t / 303_RT_39001_fix.t
CommitLineData
7ae55cf7 1use strict;
2use warnings;
86a4d873 3use Test::More;
13b8971f 4use Test::Fatal;
7ae55cf7 5
efd3d14c 6use Class::MOP;
7ae55cf7 7
8=pod
9
10This tests a bug sent via RT #39001
11
12=cut
13
14{
15 package Foo;
16 use metaclass;
17}
18
13b8971f 19like exception {
7ae55cf7 20 Foo->meta->superclasses('Foo');
13b8971f 21}, qr/^Recursive inheritance detected/, "error occurs when extending oneself";
7ae55cf7 22
23{
24 package Bar;
25 use metaclass;
26}
27
28a82dda 28# reset @ISA, so that calling methods like ->isa won't die (->meta does this
29# if DEBUG_NO_META is set)
30@Foo::ISA = ();
31
13b8971f 32ok ! exception {
7ae55cf7 33 Foo->meta->superclasses('Bar');
13b8971f 34}, "regular subclass";
7ae55cf7 35
13b8971f 36like exception {
7ae55cf7 37 Bar->meta->superclasses('Foo');
13b8971f 38}, qr/^Recursive inheritance detected/, "error occurs when Bar extends Foo, when Foo is a Bar";
7ae55cf7 39
86a4d873 40done_testing;