-#!/usr/bin/perl
-
use strict;
use warnings;
-use Test::More tests => 4;
-use Test::Exception;
+use Test::More;
+use Test::Fatal;
-BEGIN {
- use_ok('Class::MOP');
-}
+use Class::MOP;
=pod
use metaclass;
}
-throws_ok {
+like( exception {
Foo->meta->superclasses('Foo');
-} qr/^Recursive inheritance detected/, "error occurs when extending oneself";
+}, qr/^Recursive inheritance detected/, "error occurs when extending oneself" );
{
package Bar;
use metaclass;
}
-lives_ok {
+# reset @ISA, so that calling methods like ->isa won't die (->meta does this
+# if DEBUG_NO_META is set)
+@Foo::ISA = ();
+
+is( exception {
Foo->meta->superclasses('Bar');
-} "regular subclass";
+}, undef, "regular subclass" );
-throws_ok {
+like( exception {
Bar->meta->superclasses('Foo');
-} qr/^Recursive inheritance detected/, "error occurs when Bar extends Foo, when Foo is a Bar";
+}, qr/^Recursive inheritance detected/, "error occurs when Bar extends Foo, when Foo is a Bar" );
+done_testing;