Add tests for BUILDALL/DEMOLISHALL
gfx [Fri, 18 Dec 2009 04:26:36 +0000 (13:26 +0900)]
t/001_mouse/014-build.t
t/001_mouse/015-demolish.t

index 918a7d6..0eaff90 100644 (file)
@@ -1,7 +1,8 @@
 #!/usr/bin/env perl
 use strict;
 use warnings;
-use Test::More tests => 5;
+use Test::More tests => 9;
+use Test::Mouse;
 
 my @called;
 
@@ -36,22 +37,19 @@ do {
 
 is_deeply([splice @called], [], "no BUILD calls yet");
 
-my $object = Class->new;
+with_immutable {
+    my $object = Class->new;
 
-is_deeply([splice @called], ["Class::BUILD"]);
+    ok defined($object), $object->meta->is_immutable() ? 'mutable' : 'immutable';
 
-my $child = Child->new;
+    is_deeply([splice @called], ["Class::BUILD"]);
 
-is_deeply([splice @called], ["Class::BUILD", "Child::BUILD"]);
+    my $child = Child->new;
 
-Class->meta->make_immutable;
-Child->meta->make_immutable;
+    is_deeply([splice @called], ["Class::BUILD", "Child::BUILD"]);
 
-$object = Class->new;
+    $child->BUILDALL({});
 
-is_deeply([splice @called], ["Class::BUILD"], 'after make_immutable');
-
-$child = Child->new;
-
-is_deeply([splice @called], ["Class::BUILD", "Child::BUILD"], 'after make_immutable');
+    is_deeply([splice @called], ["Class::BUILD", "Child::BUILD"], 'BUILDALL');
+} qw(Class Child);
 
index 255cecf..4fad8c6 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 {
+    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);