d160e7311e113ab3c4a30a6341ca1f9dc2341804
[catagits/Catalyst-Runtime.git] / t / class_traits_CAR_bug.t
1 use strict;
2 use warnings;
3 use Test::More;
4 use Class::MOP;
5
6 BEGIN {
7   use Test::More;
8   eval "use Catalyst::Action::REST; 1" || do {
9     plan skip_all => "Trouble loading Catalyst::Action::REST => $@";
10   };
11 }
12
13 BEGIN {
14   package TestRole;
15   $INC{'TestRole'} = __FILE__;
16   use Moose::Role;
17
18   sub a { 'a' }
19   sub b { 'b' }
20
21   package Catalyst::TraitFor::Request::Foo;
22   $INC{'Catalyst/TraitFor/Request/Foo.pm'} = __FILE__;
23   use Moose::Role;
24
25   sub c { 'c' }
26
27   package TestApp::TraitFor::Request::Bar;
28   $INC{'TestApp/TraitFor/Request/Bar.pm'} = __FILE__;
29   use Moose::Role;
30
31   sub d { 'd' }
32
33   package TestApp::Controller::Root;
34   $INC{'TestApp/Controller/Root.pm'} = __FILE__;
35
36   use Moose;
37   use MooseX::MethodAttributes;
38
39
40 }
41  
42 {
43   package TestApp;
44   $INC{'TestApp.pm'} = __FILE__;
45  
46   use Catalyst;
47
48   __PACKAGE__->request_class_traits([qw/TestRole Foo Bar/]);
49   __PACKAGE__->setup;
50 }
51  
52  
53 foreach my $class_prefix (qw/request/) {
54   my $method = 'composed_' .$class_prefix. '_class';
55   ok(
56     Class::MOP::class_of(TestApp->$method)->does_role('TestRole'),
57     "$method does TestRole",
58   );
59 }
60
61 use Catalyst::Test 'TestApp';
62
63 my ($res, $c) = ctx_request '/';
64
65 is $c->req->a, 'a';
66 is $c->req->b, 'b';
67 is $c->req->c, 'c';
68 is $c->req->d, 'd';
69
70 done_testing;