X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F001_mouse%2F015-demolish.t;h=486d4713d49333e8535b49879180d4936200583c;hb=e128626c409797822ffd8a4079f833eb3dc0fd37;hp=255cecfa36d2ffb35a01899942fb8934341b4bad;hpb=224bfdd88300af5e6aa044b64111c3e0b1e64e94;p=gitmo%2FMouse.git diff --git a/t/001_mouse/015-demolish.t b/t/001_mouse/015-demolish.t index 255cecf..486d471 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 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);