use strict;
use warnings;
-use Test::More tests => 2;
+use Test::More tests => 18;
use YAML::Syck;
use FindBin;
{ test => 'worked', data => $data },
'round trip (deserialize/serialize)',
);
+
+
+ok my $res = request( $t->get( url => '/rest/test_status_created' ) );
+is $res->code, 201, "... status created";
+
+ok $res = request( $t->get( url => '/rest/test_status_accepted' ) );
+is $res->code, 202, "... status accepted";
+
+ok $res = request( $t->get( url => '/rest/test_status_no_content' ) );
+is $res->code, 204, "... status no content";
+is $res->content, '', '... no content';
+
+ok $res = request( $t->get( url => '/rest/test_status_bad_request' ) );
+is $res->code, 400, '... status bad request';
+is_deeply Load( $res->content ),
+ { error => "Cannot do what you have asked!" },
+ "... status bad request message";
+
+ok $res = request( $t->get( url => '/rest/test_status_not_found' ) );
+is $res->code, 404, '... status not found';
+is_deeply Load( $res->content ),
+ { error => "Cannot find what you were looking for!" },
+ "... status bad request message";
+
+ok $res = request( $t->get( url => '/rest/test_status_gone' ) );
+is $res->code, 410, '... status gone';
+is_deeply Load( $res->content ),
+ { error => "Document have been deleted by foo" },
+ "... status gone message";
use base 'Catalyst::Controller::REST';
sub test : Local {
- my ($self, $c) = @_;
- $self->status_ok($c, entity => { test => 'worked', data => $c->req->data });
+ my ( $self, $c ) = @_;
+ $self->status_ok( $c,
+ entity => { test => 'worked', data => $c->req->data } );
+}
+
+sub test_status_created : Local {
+ my ( $self, $c ) = @_;
+ $self->status_created(
+ $c,
+ location => '/rest',
+ entity => { status => 'created' }
+ );
+}
+
+sub test_status_accepted : Local {
+ my ( $self, $c ) = @_;
+ $self->status_accepted( $c, entity => { status => "queued", } );
+}
+
+sub test_status_no_content : Local {
+ my ( $self, $c ) = @_;
+ $self->status_no_content($c);
+}
+
+sub test_status_bad_request : Local {
+ my ( $self, $c ) = @_;
+ $self->status_bad_request( $c,
+ message => "Cannot do what you have asked!", );
+}
+
+sub test_status_not_found : Local {
+ my ( $self, $c ) = @_;
+ $self->status_not_found( $c,
+ message => "Cannot find what you were looking for!", );
+}
+
+sub test_status_gone : Local {
+ my ( $self, $c ) = @_;
+ $self->status_gone( $c,
+ message => "Document have been deleted by foo", );
}
1;