Commit | Line | Data |
ec4d7259 |
1 | use strict; |
2 | use warnings; |
3 | use Test::More; |
4 | use Class::MOP; |
5 | |
6 | BEGIN { |
7 | package TestRole; |
8 | use Moose::Role; |
9 | |
10 | sub a { 'a' } |
11 | sub b { 'b' } |
12 | } |
13 | |
14 | { |
15 | package TestApp; |
16 | |
17 | use Catalyst; |
18 | |
19 | __PACKAGE__->request_class_traits([qw/TestRole/]); |
20 | __PACKAGE__->response_class_traits([qw/TestRole/]); |
21 | __PACKAGE__->stats_class_traits([qw/TestRole/]); |
22 | |
23 | __PACKAGE__->setup; |
24 | } |
25 | |
26 | |
27 | foreach my $class_prefix (qw/request response stats/) { |
28 | my $method = 'composed_' .$class_prefix. '_class'; |
29 | ok( |
30 | Class::MOP::class_of(TestApp->$method)->does_role('TestRole'), |
31 | "$method does TestRole", |
32 | ); |
33 | } |
34 | |
35 | use Catalyst::Test 'TestApp'; |
36 | |
37 | my ($res, $c) = ctx_request '/'; |
38 | |
39 | is $c->req->a, 'a'; |
40 | is $c->req->b, 'b'; |
41 | is $c->res->a, 'a'; |
42 | is $c->res->b, 'b'; |
43 | |
44 | done_testing; |