diff options
author | Jesse Luehrs <doy@tozt.net> | 2011-05-25 19:36:49 -0500 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2011-05-25 19:36:49 -0500 |
commit | 53617281749f123de4da146e810fd892c1a28dd3 (patch) | |
tree | 3f8f77978d37698a7cc77ae9ac53ebc5e993cb55 /t | |
parent | 219d8e56458e61eab39c78395cddb9689256f512 (diff) | |
download | bread-board-declare-53617281749f123de4da146e810fd892c1a28dd3.tar.gz bread-board-declare-53617281749f123de4da146e810fd892c1a28dd3.zip |
ensure classes corresponding to class types are loaded
otherwise, type inference doesn't work
Diffstat (limited to 't')
-rw-r--r-- | t/51-infer-loading.t | 31 | ||||
-rw-r--r-- | t/lib/Inferred/Bar.pm | 9 | ||||
-rw-r--r-- | t/lib/Inferred/Foo.pm | 13 |
3 files changed, 53 insertions, 0 deletions
diff --git a/t/51-infer-loading.t b/t/51-infer-loading.t new file mode 100644 index 0000000..97e98d3 --- /dev/null +++ b/t/51-infer-loading.t @@ -0,0 +1,31 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use Test::More; +use lib 't/lib'; + +{ + package Foo; + use Moose; + use Bread::Board::Declare; + + has foo => ( + is => 'ro', + isa => 'Inferred::Foo', + infer => 1, + ); + + has bar => ( + is => 'ro', + isa => 'Inferred::Bar', + ); +} + +{ + my $c = Foo->new; + isa_ok($c->foo, 'Inferred::Foo'); + isa_ok($c->foo->bar, 'Inferred::Bar'); + isa_ok($c->bar, 'Inferred::Bar'); +} + +done_testing; diff --git a/t/lib/Inferred/Bar.pm b/t/lib/Inferred/Bar.pm new file mode 100644 index 0000000..9536a04 --- /dev/null +++ b/t/lib/Inferred/Bar.pm @@ -0,0 +1,9 @@ +package Inferred::Bar; +use Moose; + + + +__PACKAGE__->meta->make_immutable; +no Moose; + +1; diff --git a/t/lib/Inferred/Foo.pm b/t/lib/Inferred/Foo.pm new file mode 100644 index 0000000..af60637 --- /dev/null +++ b/t/lib/Inferred/Foo.pm @@ -0,0 +1,13 @@ +package Inferred::Foo; +use Moose; + +has bar => ( + is => 'ro', + isa => 'Inferred::Bar', + required => 1, +); + +__PACKAGE__->meta->make_immutable; +no Moose; + +1; |