X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=gitmo%2FMouse.git;a=blobdiff_plain;f=t%2F001_mouse%2F015-demolish.t;h=4fad8c6c5b5f3be86899fa1b72b1f929f44e8760;hp=255cecfa36d2ffb35a01899942fb8934341b4bad;hb=289e54309468b5da0fb0774fd1db627ee337fb82;hpb=e69960297d0235c1213c75c5284e06875c1b46f2 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);