Skip tests for strict constructor on Moose
[gitmo/Mouse.git] / t / 001_mouse / 015-demolish.t
index 255cecf..486d471 100644 (file)
@@ -1,7 +1,8 @@
 #!/usr/bin/env perl
 use strict;
 use warnings;
-use Test::More tests => 10;
+use Test::More tests => 15;
+use Test::Mouse;
 
 my @called;
 
@@ -36,39 +37,31 @@ do {
 
 is_deeply([splice @called], [], "no DEMOLISH calls yet");
 
-do {
-    my $object = Class->new;
-
-    is_deeply([splice @called], [], "no DEMOLISH calls yet");
-};
-
-is_deeply([splice @called], ['Class::DEMOLISH']);
-
-do {
-    my $child = Child->new;
-    is_deeply([splice @called], [], "no DEMOLISH calls yet");
-
-};
+with_immutable sub {
+    ok(Class->meta, Class->meta->is_immutable ? 'mutable' : 'immutable');
 
-is_deeply([splice @called], ['Child::DEMOLISH', 'Class::DEMOLISH']);
+    {
+        my $object = Class->new;
 
-Class->meta->make_immutable();
-Child->meta->make_immutable();
+        is_deeply([splice @called], [], "no DEMOLISH calls yet");
+    }
 
-is_deeply([splice @called], [], "no DEMOLISH calls yet");
+    is_deeply([splice @called], ['Class::DEMOLISH']);
 
-do {
-    my $object = Class->new;
+    {
+        my $child = Child->new;
+        is_deeply([splice @called], [], "no DEMOLISH calls yet");
 
-    is_deeply([splice @called], [], "no DEMOLISH calls yet");
-};
+    }
 
-is_deeply([splice @called], ['Class::DEMOLISH'], 'after make_immutable');
+    is_deeply([splice @called], ['Child::DEMOLISH', 'Class::DEMOLISH']);
 
-do {
-    my $child = Child->new;
-    is_deeply([splice @called], [], "no DEMOLISH calls yet");
+    {
+        my $child = Child->new;
+        $child->DEMOLISHALL();
 
-};
+        is_deeply([splice @called], ['Child::DEMOLISH', 'Class::DEMOLISH'], 'DEMOLISHALL');
+    }
 
-is_deeply([splice @called], ['Child::DEMOLISH', 'Class::DEMOLISH'], 'after make_immutable');
+    is_deeply([splice @called], ['Child::DEMOLISH', 'Class::DEMOLISH'], 'DEMOLISHALL');
+}, qw(Class Child);