X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F023-builder.t;h=25b7fa8871e0426ab5b2a490263cd78b110b4fb0;hb=010a2b16f8ed60a3dcca43e80ec75daee135447e;hp=a89ee0b34faecd8afc52d3e139893692928658f1;hpb=5d5a3b5ddd7ebaa29520ab3fdb23da94e6d67d85;p=gitmo%2FMouse.git diff --git a/t/023-builder.t b/t/023-builder.t index a89ee0b..25b7fa8 100644 --- a/t/023-builder.t +++ b/t/023-builder.t @@ -1,7 +1,7 @@ #!/usr/bin/env perl use strict; use warnings; -use Test::More tests => 30; +use Test::More tests => 34; my $builder_called = 0; my $lazy_builder_called = 0; @@ -15,6 +15,7 @@ do { isa => 'Str', builder => '_build_name', predicate => 'has_name', + clearer => 'clear_name', ); sub _build_name { @@ -51,6 +52,13 @@ is($object->name, "Bill", "builder doesn't matter when we just set the value in is($builder_called, 0, "builder not called in the setter"); $builder_called = 0; +$object->clear_name; +ok(!$object->has_name, "predicate: no value after clear"); +is($object->name, undef, "eager builder does NOT swoop in after clear"); +ok(!$object->has_name, "predicate: no value after clear and get"); +is($builder_called, 0, "builder not called in the getter, even after clear"); +$builder_called = 0; + my $object2 = Class->new; ok($object2->has_name, "predicate: value from eager builder"); is($object2->name, "FRANK", "builder called to provide the default value");