X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F001_mouse%2F014-build.t;h=b1e3293d4766e0828df2f759334a934fc6d5b8f9;hb=29cb82b7c53a275a299076477c09d5cbe4f2d160;hp=0d95047f89d1bed7d419cccfd6bcbd7c6d963a92;hpb=920139b3efca66d2caeeef306c97fa0da62c6b73;p=gitmo%2FMouse.git diff --git a/t/001_mouse/014-build.t b/t/001_mouse/014-build.t index 0d95047..b1e3293 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 => 3; +use Test::More tests => 9; +use Test::Mouse; my @called; @@ -13,11 +14,11 @@ do { push @called, 'Class::BUILD'; } - sub BUILDALL { - my $self = shift; - push @called, 'Class::BUILDALL'; - $self->SUPER::BUILDALL(@_); - } +# sub BUILDALL { +# my $self = shift; +# push @called, 'Class::BUILDALL'; +# $self->SUPER::BUILDALL(@_); +# } package Child; use Mouse; @@ -27,19 +28,28 @@ do { push @called, 'Child::BUILD'; } - sub BUILDALL { - my $self = shift; - push @called, 'Child::BUILDALL'; - $self->SUPER::BUILDALL(@_); - } +# sub BUILDALL { +# my $self = shift; +# push @called, 'Child::BUILDALL'; +# $self->SUPER::BUILDALL(@_); +# } }; is_deeply([splice @called], [], "no BUILD calls yet"); -my $object = Class->new; +with_immutable sub { + my $object = Class->new; + + ok defined($object), $object->meta->is_immutable() ? 'mutable' : 'immutable'; + + is_deeply([splice @called], ["Class::BUILD"]); + + my $child = Child->new; + + is_deeply([splice @called], ["Class::BUILD", "Child::BUILD"]); -is_deeply([splice @called], ["Class::BUILDALL", "Class::BUILD"]); + $child->BUILDALL({}); -my $child = Child->new; + is_deeply([splice @called], ["Class::BUILD", "Child::BUILD"], 'BUILDALL'); +}, qw(Class Child); -is_deeply([splice @called], ["Child::BUILDALL", "Class::BUILDALL", "Class::BUILD", "Child::BUILD"]);