do not include .git directory
[catagits/Reaction.git] / lib / Reaction / Test.pm
CommitLineData
7adfd53f 1package Reaction::Test;
2
3use base qw/Test::Class Reaction::Object/;
4use Reaction::Class;
5
6sub simple_mock_context {
7 my ($q_p, $b_p, $path) = ({}, {}, 'test/path');
8 my $req = bless({
9 query_parameters => sub { $q_p }, body_parameters => sub { $b_p },
10 path => sub { shift; $path = shift if @_; $path; },
11 }, 'Reaction::Test::Mock::Request');
12 my %res_info = (content_type => '', body => '', status => 200, headers => {});
13 my $res = bless({
14 (map {
15 my $key = $_;
16 ($key => sub { shift; $res_info{$key} = shift if @_; $res_info{$key} });
17 } keys %res_info),
18 header => sub {
19 shift; my $h = shift;
20 $res_info{headers}{$h} = shift if @_;
21 $res_info{headers}{$h};
22 },
23 }, 'Reaction::Test::Mock::Response');
24 return bless({
25 req => sub { $req }, res => sub { $res },
26 }, 'Reaction::Test::Mock::Context');
27}
28
29=head1 NAME
30
31Reaction::Test
32
33=head1 DESCRIPTION
34
35=head1 AUTHORS
36
37See L<Reaction::Class> for authors.
38
39=head1 LICENSE
40
41See L<Reaction::Class> for the license.
42
43=cut
44
45
46package Reaction::Test::Mock::Context;
47
48sub isa {
49 shift; return 1 if (shift eq 'Catalyst');
50}
51
52sub view {
53 return $_[0]->{view}->(@_);
54}
55
56sub req {
57 return $_[0]->{req}->(@_);
58}
59
60sub res {
61 return $_[0]->{res}->(@_);
62}
63
64package Reaction::Test::Mock::Request;
65
66sub query_parameters {
67 return $_[0]->{query_parameters}->(@_);
68}
69
70sub body_parameters {
71 return $_[0]->{body_parameters}->(@_);
72}
73
74sub path {
75 return $_[0]->{path}->(@_);
76}
77
78package Reaction::Test::Mock::Response;
79
80sub body {
81 return $_[0]->{body}->(@_);
82}
83
84sub content_type {
85 return $_[0]->{content_type}->(@_);
86}
87
88sub status {
89 return $_[0]->{status}->(@_);
90}
91
92sub headers {
93 return $_[0]->{headers}->(@_);
94}
95
96sub header {
97 return $_[0]->{header}->(@_);
98}
99
1001;