example short circuit prepare phase
[catagits/Catalyst-Runtime.git] / t / class_traits_CAR_bug.t
CommitLineData
0f0fedb2 1use strict;
2use warnings;
3use Test::More;
4use Class::MOP;
5
6BEGIN {
7 use Test::More;
8 eval "use Catalyst::Action::REST; 1" || do {
9 plan skip_all => "Trouble loading Catalyst::Action::REST => $@";
10 };
11}
12
13BEGIN {
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
53foreach 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
61use Catalyst::Test 'TestApp';
62
63my ($res, $c) = ctx_request '/';
64
65is $c->req->a, 'a';
66is $c->req->b, 'b';
67is $c->req->c, 'c';
68is $c->req->d, 'd';
69
70done_testing;