refactor test case to make it more like the others (hoping to solve a win32 fail)
[catagits/Catalyst-Runtime.git] / t / inject_component_util.t
index c757d9c..3ac9dcc 100644 (file)
@@ -1,41 +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 => 't::Test::Apple' );
-    Catalyst::Utils::inject_component( into => __PACKAGE__, component => 'Model::Banana', as => 'Cherry' );
-    Catalyst::Utils::inject_component( into => __PACKAGE__, component => 't::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 t::Test::Apple /;
+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;