Commit | Line | Data |
0ba73721 |
1 | use strict; |
2 | use warnings; |
a60f84be |
3 | use Test::More; |
0ba73721 |
4 | use YAML::Syck; |
5 | use FindBin; |
6 | |
7 | use lib ("$FindBin::Bin/lib", "$FindBin::Bin/../lib", "$FindBin::Bin/broken"); |
8 | use Test::Rest; |
9 | |
10 | my $t = Test::Rest->new(content_type => 'text/x-yaml'); |
11 | |
12 | use_ok 'Catalyst::Test', 'Test::Catalyst::Action::REST'; |
13 | |
14 | my $data = { your => 'face' }; |
15 | is_deeply( |
16 | Load( |
17 | request($t->put(url => '/rest/test', data => Dump($data)))->content |
18 | ), |
19 | { test => 'worked', data => $data }, |
20 | 'round trip (deserialize/serialize)', |
21 | ); |
9fb09119 |
22 | |
23 | |
24 | ok my $res = request( $t->get( url => '/rest/test_status_created' ) ); |
25 | is $res->code, 201, "... status created"; |
26 | |
27 | ok $res = request( $t->get( url => '/rest/test_status_accepted' ) ); |
28 | is $res->code, 202, "... status accepted"; |
29 | |
30 | ok $res = request( $t->get( url => '/rest/test_status_no_content' ) ); |
31 | is $res->code, 204, "... status no content"; |
32 | is $res->content, '', '... no content'; |
33 | |
e52456a4 |
34 | ok $res = request( $t->get( url => '/rest/test_status_found' ) ); |
35 | is $res->code, 302, '... status found'; |
36 | is_deeply Load( $res->content ), |
37 | { status => 'found' }, |
38 | "... status found message"; |
39 | |
9fb09119 |
40 | ok $res = request( $t->get( url => '/rest/test_status_bad_request' ) ); |
41 | is $res->code, 400, '... status bad request'; |
42 | is_deeply Load( $res->content ), |
43 | { error => "Cannot do what you have asked!" }, |
44 | "... status bad request message"; |
45 | |
550807bc |
46 | ok $res = request( $t->get( url => '/rest/test_status_forbidden' ) ); |
47 | is $res->code, 403, '... status forbidden'; |
48 | is_deeply Load( $res->content ), |
49 | { error => "access denied" }, |
50 | "... status forbidden"; |
51 | |
9fb09119 |
52 | ok $res = request( $t->get( url => '/rest/test_status_not_found' ) ); |
53 | is $res->code, 404, '... status not found'; |
54 | is_deeply Load( $res->content ), |
55 | { error => "Cannot find what you were looking for!" }, |
56 | "... status bad request message"; |
57 | |
58 | ok $res = request( $t->get( url => '/rest/test_status_gone' ) ); |
59 | is $res->code, 410, '... status gone'; |
60 | is_deeply Load( $res->content ), |
61 | { error => "Document have been deleted by foo" }, |
62 | "... status gone message"; |
bdff70a9 |
63 | |
64 | ok $res = request( $t->get( url => '/rest/test_status_multiple_choices' ) ); |
65 | is $res->code, 300, "... multiple choices"; |
a60f84be |
66 | is_deeply Load($res->content), |
67 | { choices => [qw(/rest/choice1 /rest/choice2)] }, |
68 | "... 300 multiple choices has response body"; |
69 | |
70 | done_testing; |
bdff70a9 |
71 | |