From 56ea4c74c3ba642899a736eff7270067c6738020 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Sun, 20 Feb 2011 02:15:07 -0600 Subject: one more basic test --- t/03-lifecycle.t | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 t/03-lifecycle.t (limited to 't/03-lifecycle.t') diff --git a/t/03-lifecycle.t b/t/03-lifecycle.t new file mode 100644 index 0000000..aedf96c --- /dev/null +++ b/t/03-lifecycle.t @@ -0,0 +1,49 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; + +{ + package Baz; + use Moose; + + has bar => ( + is => 'ro', + isa => 'Str', + required => 1, + ); +} + +{ + package Foo; + use Moose; + use MooseX::Bread::Board; + + my $i = 0; + has bar => ( + is => 'ro', + isa => 'Str', + block => sub { $i++ }, + ); + + has baz => ( + is => 'ro', + isa => 'Baz', + class => 'Baz', + dependencies => ['bar'], + lifecycle => 'Singleton', + ); +} + +{ + my $foo = Foo->new; + my $baz = $foo->baz; + is($baz->bar, '0', "deps resolved correctly"); + is($baz->bar, '0', "doesn't re-resolve, since Baz is a normal class"); + is($foo->baz->bar, '0', + "doesn't re-resolve since the baz attr is a singleton"); + is($foo->baz, $foo->baz, + "doesn't re-resolve since the baz attr is a singleton"); +} + +done_testing; -- cgit v1.2.3