stop closing over the method metaobject
[gitmo/Moose.git] / t / metaclasses / throw_error.t
index a332c93..246754d 100644 (file)
@@ -5,6 +5,7 @@ use warnings;
 
 use Test::More;
 use Test::Fatal;
+use Test::Moose;
 
 {
 
@@ -63,6 +64,7 @@ sub create_error {
     };
 }
 
+with_immutable {
 {
     my $e = create_error( Foo->new );
     ok( !ref( $e->{error} ), "error is a string" );
@@ -91,6 +93,7 @@ sub create_error {
     is_deeply( $e->{error}->data, [ $baz, 4 ], "captured args" );
     like( $e->{error}->last_error, qr/Blah/, "last error preserved" );
 }
+} 'Foo', 'Bar', 'Baz';
 
 {
     package Role::Foo;
@@ -200,6 +203,7 @@ sub stacktrace_not_ok (&) {
     cmp_ok(scalar(@lines), '==', 1, "didn't get a stacktrace");
 }
 
+with_immutable {
 my $default = Quux::Default->new;
 my $croak = Quux::Croak->new;
 my $confess = Quux::Confess->new;
@@ -228,5 +232,6 @@ is($confess->meta->error_class, 'Moose::Error::Confess');
     stacktrace_not_ok { $croak->bar };
     stacktrace_ok { $confess->bar };
 }
+} 'Quux::Default', 'Quux::Croak', 'Quux::Confess';
 
 done_testing;