5 use lib "$FindBin::Bin/lib";
13 $INC{'RoleTest1.pm'} = __FILE__;
20 $INC{'RoleTest2.pm'} = __FILE__;
22 package Model::Banana;
23 use base qw/Catalyst::Model/;
25 $INC{'Model/Banana.pm'} = __FILE__;
27 package Model::BananaMoose;
30 extends 'Catalyst::Model';
32 Model::BananaMoose->meta->make_immutable;
33 $INC{'Model/BananaMoose.pm'} = __FILE__;
38 $INC{'TestCatalyst.pm'} = __FILE__;
44 after 'setup_components' => sub {
46 Catalyst::Utils::inject_component( into => __PACKAGE__, component => 'Model::Banana' );
47 Catalyst::Utils::inject_component( into => __PACKAGE__, component => 'Test::Apple' );
48 Catalyst::Utils::inject_component( into => __PACKAGE__, component => 'Model::Banana', as => 'Cherry' );
49 Catalyst::Utils::inject_component( into => __PACKAGE__, component => 'Model::BananaMoose', as => 'CherryMoose', traits => ['RoleTest1', 'RoleTest2'] );
50 Catalyst::Utils::inject_component( into => __PACKAGE__, component => 'Test::Apple', as => 'Apple' );
51 Catalyst::Utils::inject_component( into => __PACKAGE__, component => 'Test::Apple', as => 'Apple2', traits => ['RoleTest1', 'RoleTest2'] );
54 TestCatalyst->config( 'home' => '.' );
58 use Catalyst::Test qw/TestCatalyst/;
60 ok( TestCatalyst->controller( $_ ) ) for qw/ Apple Test::Apple /;
61 ok( TestCatalyst->model( $_ ) ) for qw/ Banana Cherry /;
62 is( TestCatalyst->controller('Apple2')->aaa, 'aaa');
63 is( TestCatalyst->controller('Apple2')->bbb, 'bbb');
64 is( TestCatalyst->model('CherryMoose')->aaa, 'aaa');
65 is( TestCatalyst->model('CherryMoose')->bbb, 'bbb');