X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Runtime.git;a=blobdiff_plain;f=t%2Finject_component_util.t;h=3ac9dccb29a7562ba29a29f9420bf37c46136ece;hp=7162202615b7a39a099aa9cfbb3d706d9ef3f1f8;hb=c527a435b600f70a18d6877d992d951486160ccd;hpb=d5c890a4433058eb9fb0ac7f23cd264d38e6cff0 diff --git a/t/inject_component_util.t b/t/inject_component_util.t index 7162202..3ac9dcc 100644 --- a/t/inject_component_util.t +++ b/t/inject_component_util.t @@ -1,43 +1,67 @@ use strict; use warnings; use Test::More; -use Catalyst::Utils; use FindBin; use lib "$FindBin::Bin/lib"; BEGIN { -package Model::Banana; - -use base qw/Catalyst::Model/; - -package TestCatalyst; $INC{'TestCatalyst.pm'} = 1; - -use Catalyst::Runtime '5.70'; - -use Moose; -BEGIN { extends qw/Catalyst/ } - -use Catalyst; - -after 'setup_components' => sub { - my $self = shift; - Catalyst::Utils::inject_component( into => __PACKAGE__, component => 'Model::Banana' ); - Catalyst::Utils::inject_component( into => __PACKAGE__, component => 'Test::Apple' ); - Catalyst::Utils::inject_component( into => __PACKAGE__, component => 'Model::Banana', as => 'Cherry' ); - Catalyst::Utils::inject_component( into => __PACKAGE__, component => 'Test::Apple', as => 'Apple' ); -}; - -TestCatalyst->config( 'home' => '.' ); - -TestCatalyst->setup; - + package RoleTest1; + use Moose::Role; + + sub aaa { 'aaa' } + + $INC{'RoleTest1.pm'} = __FILE__; + + package RoleTest2; + use Moose::Role; + + sub bbb { 'bbb' } + + $INC{'RoleTest2.pm'} = __FILE__; + + package Model::Banana; + use base qw/Catalyst::Model/; + + $INC{'Model/Banana.pm'} = __FILE__; + + package Model::BananaMoose; + + use Moose; + extends 'Catalyst::Model'; + + Model::BananaMoose->meta->make_immutable; + $INC{'Model/BananaMoose.pm'} = __FILE__; +} + +{ + package TestCatalyst; + $INC{'TestCatalyst.pm'} = __FILE__; + + use Moose; + use Catalyst; + use Catalyst::Utils; + + after 'setup_components' => sub { + my $self = shift; + Catalyst::Utils::inject_component( into => __PACKAGE__, component => 'Model::Banana' ); + Catalyst::Utils::inject_component( into => __PACKAGE__, component => 'Test::Apple' ); + Catalyst::Utils::inject_component( into => __PACKAGE__, component => 'Model::Banana', as => 'Cherry' ); + Catalyst::Utils::inject_component( into => __PACKAGE__, component => 'Model::BananaMoose', as => 'CherryMoose', traits => ['RoleTest1', 'RoleTest2'] ); + Catalyst::Utils::inject_component( into => __PACKAGE__, component => 'Test::Apple', as => 'Apple' ); + Catalyst::Utils::inject_component( into => __PACKAGE__, component => 'Test::Apple', as => 'Apple2', traits => ['RoleTest1', 'RoleTest2'] ); + }; + + TestCatalyst->config( 'home' => '.' ); + TestCatalyst->setup; } - -package main; use Catalyst::Test qw/TestCatalyst/; ok( TestCatalyst->controller( $_ ) ) for qw/ Apple Test::Apple /; ok( TestCatalyst->model( $_ ) ) for qw/ Banana Cherry /; +is( TestCatalyst->controller('Apple2')->aaa, 'aaa'); +is( TestCatalyst->controller('Apple2')->bbb, 'bbb'); +is( TestCatalyst->model('CherryMoose')->aaa, 'aaa'); +is( TestCatalyst->model('CherryMoose')->bbb, 'bbb'); done_testing;