X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Faccessor-weaken.t;h=ec5b0691902299938c0435e58f4d681723c26ed8;hb=6998abed26a68b7adc6254bb6e1900623b2ac903;hp=d390c27d669d8c443bb7beb1b53825a05787a359;hpb=3d49ee2792c487353cae59f59cde2e5aaba6d545;p=gitmo%2FMoo.git diff --git a/t/accessor-weaken.t b/t/accessor-weaken.t index d390c27..ec5b069 100644 --- a/t/accessor-weaken.t +++ b/t/accessor-weaken.t @@ -7,6 +7,12 @@ use Test::More; use Moo; has one => (is => 'ro', weak_ref => 1); + + package Foo2; + + use Moo; + + has one => (is => 'lazy', weak_ref => 1, default => sub { {} }); } my $ref = {}; @@ -14,7 +20,13 @@ my $foo = Foo->new(one => $ref); is($foo->one, $ref, 'value present'); ok(Scalar::Util::isweak($foo->{one}), 'value weakened'); undef $ref; -ok (!defined $foo->{one}, 'weak value gone'); +ok(!defined $foo->{one}, 'weak value gone'); + +my $foo2 = Foo2->new; +ok(my $ref2 = $foo2->one, 'value returned'); +ok(Scalar::Util::isweak($foo2->{one}), 'value weakened'); +undef $ref2; +ok(!defined $foo->{one}, 'weak value gone'); # test readonly SVs sub mk_ref { \ 'yay' };