avoid using deprecated subs in threads test
[catagits/Catalyst-Runtime.git] / t / class_traits_CAR_bug.t
CommitLineData
0f0fedb2 1use strict;
2use warnings;
3use Test::More;
4use Class::MOP;
5
6BEGIN {
10542b51 7 my %hidden = map { (my $m = "$_.pm") =~ s{::}{/}g; $m => 1 } qw(
8 Foo
9 Bar
10 );
11 unshift @INC, sub {
12 return unless exists $hidden{$_[1]};
13 die "Can't locate $_[1] in \@INC (hidden)\n";
14 };
15}
16
17BEGIN {
0f0fedb2 18 package TestRole;
19 $INC{'TestRole'} = __FILE__;
20 use Moose::Role;
21
22 sub a { 'a' }
23 sub b { 'b' }
24
25 package Catalyst::TraitFor::Request::Foo;
26 $INC{'Catalyst/TraitFor/Request/Foo.pm'} = __FILE__;
27 use Moose::Role;
28
29 sub c { 'c' }
30
31 package TestApp::TraitFor::Request::Bar;
32 $INC{'TestApp/TraitFor/Request/Bar.pm'} = __FILE__;
33 use Moose::Role;
34
35 sub d { 'd' }
36
37 package TestApp::Controller::Root;
38 $INC{'TestApp/Controller/Root.pm'} = __FILE__;
39
40 use Moose;
41 use MooseX::MethodAttributes;
42
43
44}
88e5a8b0 45
53c7cc10 46BEGIN {
47 package TestApp::Controller::Root;
48 $INC{'TestApp/Controller/Root.pm'} = __FILE__;
49
50 use Moose;
51
52 BEGIN { extends 'Catalyst::Controller' };
53
54 sub root :Path('/') {}
55}
56
0f0fedb2 57{
58 package TestApp;
59 $INC{'TestApp.pm'} = __FILE__;
88e5a8b0 60
0f0fedb2 61 use Catalyst;
62
63 __PACKAGE__->request_class_traits([qw/TestRole Foo Bar/]);
64 __PACKAGE__->setup;
65}
88e5a8b0 66
67
0f0fedb2 68foreach my $class_prefix (qw/request/) {
69 my $method = 'composed_' .$class_prefix. '_class';
70 ok(
71 Class::MOP::class_of(TestApp->$method)->does_role('TestRole'),
72 "$method does TestRole",
73 );
74}
75
76use Catalyst::Test 'TestApp';
77
78my ($res, $c) = ctx_request '/';
79
80is $c->req->a, 'a';
81is $c->req->b, 'b';
82is $c->req->c, 'c';
83is $c->req->d, 'd';
84
85done_testing;