From: gfx Date: Fri, 18 Dec 2009 04:26:36 +0000 (+0900) Subject: Add tests for BUILDALL/DEMOLISHALL X-Git-Tag: 0.45~14 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=289e54309468b5da0fb0774fd1db627ee337fb82;p=gitmo%2FMouse.git Add tests for BUILDALL/DEMOLISHALL --- diff --git a/t/001_mouse/014-build.t b/t/001_mouse/014-build.t index 918a7d6..0eaff90 100644 --- a/t/001_mouse/014-build.t +++ b/t/001_mouse/014-build.t @@ -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); diff --git a/t/001_mouse/015-demolish.t b/t/001_mouse/015-demolish.t index 255cecf..4fad8c6 100644 --- a/t/001_mouse/015-demolish.t +++ b/t/001_mouse/015-demolish.t @@ -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);