Commit | Line | Data |
0f0fedb2 |
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; |