set correct %INC
[catagits/Catalyst-Runtime.git] / t / class_traits_CAR_bug.t
diff --git a/t/class_traits_CAR_bug.t b/t/class_traits_CAR_bug.t
new file mode 100644 (file)
index 0000000..d160e73
--- /dev/null
@@ -0,0 +1,70 @@
+use strict;
+use warnings;
+use Test::More;
+use Class::MOP;
+
+BEGIN {
+  use Test::More;
+  eval "use Catalyst::Action::REST; 1" || do {
+    plan skip_all => "Trouble loading Catalyst::Action::REST => $@";
+  };
+}
+
+BEGIN {
+  package TestRole;
+  $INC{'TestRole'} = __FILE__;
+  use Moose::Role;
+
+  sub a { 'a' }
+  sub b { 'b' }
+
+  package Catalyst::TraitFor::Request::Foo;
+  $INC{'Catalyst/TraitFor/Request/Foo.pm'} = __FILE__;
+  use Moose::Role;
+
+  sub c { 'c' }
+
+  package TestApp::TraitFor::Request::Bar;
+  $INC{'TestApp/TraitFor/Request/Bar.pm'} = __FILE__;
+  use Moose::Role;
+
+  sub d { 'd' }
+
+  package TestApp::Controller::Root;
+  $INC{'TestApp/Controller/Root.pm'} = __FILE__;
+
+  use Moose;
+  use MooseX::MethodAttributes;
+
+
+}
+{
+  package TestApp;
+  $INC{'TestApp.pm'} = __FILE__;
+  use Catalyst;
+
+  __PACKAGE__->request_class_traits([qw/TestRole Foo Bar/]);
+  __PACKAGE__->setup;
+}
+foreach my $class_prefix (qw/request/) {
+  my $method = 'composed_' .$class_prefix. '_class';
+  ok(
+    Class::MOP::class_of(TestApp->$method)->does_role('TestRole'),
+    "$method does TestRole",
+  );
+}
+
+use Catalyst::Test 'TestApp';
+
+my ($res, $c) = ctx_request '/';
+
+is $c->req->a, 'a';
+is $c->req->b, 'b';
+is $c->req->c, 'c';
+is $c->req->d, 'd';
+
+done_testing;