X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F001-basic.t;h=b6ad4ffd83c7be3c45e6c7d8ea9c5d070e162a8b;hb=03e1b8df86e9ad4dd27d689d506324942bd20652;hp=99ed3de81474db8927b93c09d59d8028204e7bd0;hpb=109b110b1d5969c8ae2ec7a5e5d86066f895d828;p=gitmo%2FMooseX-Singleton.git diff --git a/t/001-basic.t b/t/001-basic.t index 99ed3de..b6ad4ff 100644 --- a/t/001-basic.t +++ b/t/001-basic.t @@ -1,6 +1,6 @@ use strict; use warnings; -use Test::More tests => 15; +use Test::More tests => 17; BEGIN { package MooseX::Singleton::Test; @@ -9,7 +9,7 @@ BEGIN { has bag => ( is => 'rw', isa => 'HashRef[Int]', - default => sub { {} }, + default => sub { { default => 42 } }, ); sub distinct_keys { @@ -34,35 +34,39 @@ BEGIN { my $mst = MooseX::Singleton::Test->instance; isa_ok($mst, 'MooseX::Singleton::Test', 'Singleton->instance returns a real instance'); -is($mst->distinct_keys, 0, "no keys yet"); +is($mst->distinct_keys, 1, "default keys"); $mst->add(foo => 10); -is($mst->distinct_keys, 1, "one key"); +is($mst->distinct_keys, 2, "added key"); $mst->add(bar => 5); -is($mst->distinct_keys, 2, "two keys"); +is($mst->distinct_keys, 3, "added another key"); my $mst2 = MooseX::Singleton::Test->instance; +is($mst, $mst2, 'instances are the same object'); isa_ok($mst2, 'MooseX::Singleton::Test', 'Singleton->instance returns a real instance'); -is($mst2->distinct_keys, 2, "two keys, from before"); +is($mst2->distinct_keys, 3, "keys from before"); $mst->add(baz => 2); -is($mst->distinct_keys, 3, "three keys"); -is($mst2->distinct_keys, 3, "attributes are shared even after ->instance"); +is($mst->distinct_keys, 4, "attributes are shared even after ->instance"); +is($mst2->distinct_keys, 4, "attributes are shared even after ->instance"); -is(MooseX::Singleton::Test->distinct_keys, 3, "three keys even when Package->distinct_keys"); +is(MooseX::Singleton::Test->distinct_keys, 4, "Package->reader works"); MooseX::Singleton::Test->add(quux => 9000); -is($mst->distinct_keys, 4, "Package->add works fine"); -is($mst2->distinct_keys, 4, "Package->add works fine"); -is(MooseX::Singleton::Test->distinct_keys, 4, "Package->add works fine"); +is($mst->distinct_keys, 5, "Package->add works"); +is($mst2->distinct_keys, 5, "Package->add works"); +is(MooseX::Singleton::Test->distinct_keys, 5, "Package->add works"); MooseX::Singleton::Test->clear; -is($mst->distinct_keys, 0, "Package->clear works fine"); -is($mst2->distinct_keys, 0, "Package->clear works fine"); -is(MooseX::Singleton::Test->distinct_keys, 0, "Package->clear works fine"); +is($mst->distinct_keys, 0, "Package->clear works"); +is($mst2->distinct_keys, 0, "Package->clear works"); +is(MooseX::Singleton::Test->distinct_keys, 0, "Package->clear works"); +MooseX::Singleton::Test->_clear_instance; +$mst = $mst2 = undef; +is(MooseX::Singleton::Test->new->distinct_keys, 1, "back to the default");