fixed problem with deep trait parameters
[catagits/CatalystX-Declare.git] / t / lib / TestApp / Controller / ActionParams.pm
CommitLineData
d14acb87 1use CatalystX::Declare;
2namespace TestApp;
3
4role hasActionParams {
5 has [qw/p1 p2/] => (is=>'ro', lazy_build=>1);
6
7 method _build_p1 {
34a0a1ff 8 join ',', @{$self->attributes->{p1}};
d14acb87 9 }
10 method _build_p2 {
34a0a1ff 11 join ',', @{$self->attributes->{p2}};
d14acb87 12 }
13}
14
a82dd4d2 15role hasActionParamsDeep {
16 has 'p_deep' => (is=>'ro', lazy_build=>1);
17 method _build_p_deep {
18 join ',', @{$self->attributes->{p_deep}};
19 }
20}
21
d14acb87 22controller ::Controller::ActionParams {
23
24 action base
25 under '/base'
26 as 'actionparams';
27
28 action first under base
12b853ff 29 with hasActionParams(p1=>100,p2=>101)
30 is final {
d14acb87 31 my $p1 = $ctx->controller->action_for('first')->p1;
32 my $p2 = $ctx->controller->action_for('first')->p2;
33 $ctx->response->body("action_args_first: $p1,$p2");
34 }
35
36 action second under base
12b853ff 37 with hasActionParams({p1=>200,p2=>201})
d14acb87 38 is final {
39 my $p1 = $ctx->controller->action_for('second')->p1;
40 my $p2 = $ctx->controller->action_for('second')->p2;
41 $ctx->response->body("action_args_second: $p1,$p2");
42 }
43
e00e30bd 44 action third under base
45 with hasActionParams(
46 p1=>300,
47 p2=>301,
48 ) is final {
49 my $p1 = $ctx->controller->action_for('third')->p1;
50 my $p2 = $ctx->controller->action_for('third')->p2;
51 $ctx->response->body("action_args_third: $p1,$p2");
52 }
34a0a1ff 53
54 action forth under base
a82dd4d2 55 with (
56 hasActionParams(p1=>400,p2=>401),
57 hasActionParams(p1=>1,p2=>2, p0=>3)
58 ) is final {
59 my $action = $ctx->controller->action_for('forth');
60 my $p1 = $action->p1;
61 my $p2 = $action->p2;
34a0a1ff 62 $ctx->response->body("action_args_forth: $p1,$p2");
63 }
12b853ff 64
65 action first_app_ns under base
66 with hasActionParams_AppNS(p1=>100,p2=>101)
67 is final {
68 my $p1 = $ctx->controller->action_for('first')->p1;
69 my $p2 = $ctx->controller->action_for('first')->p2;
70 $ctx->response->body("action_args_first: $p1,$p2");
71 }
72
73 action first_cat_ns under base
74 with hasActionParams_CatNS(p1=>100,p2=>101)
75 is final {
76 my $p1 = $ctx->controller->action_for('first')->p1;
77 my $p2 = $ctx->controller->action_for('first')->p2;
78 $ctx->response->body("action_args_first: $p1,$p2");
79 }
80
a82dd4d2 81 action check_deep under base
82 with hasActionParamsDeep(p_deep=>{a=>1,b=>2}) is final {
83 my $action = $ctx->controller->action_for('check_deep');
84 my $p_deep = $action->p_deep;
85 ## $ctx->log->_dump($action->attributes);
86 $ctx->response->body("action_args_deep: $p_deep");
87 }
88
89
d14acb87 90}
91