X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?p=catagits%2FCatalyst-Controller-DBIC-API.git;a=blobdiff_plain;f=t%2Frest%2Fitem.t;fp=t%2Frest%2Fitem.t;h=a376a6ba24e4195e31685967b468cdbd1e0cfba8;hp=0000000000000000000000000000000000000000;hb=609916e5de6201b2e2212328153657194b41a730;hpb=8cf0b66a04e74b7bd5db0c8041575825ec8f73d2 diff --git a/t/rest/item.t b/t/rest/item.t new file mode 100644 index 0000000..a376a6b --- /dev/null +++ b/t/rest/item.t @@ -0,0 +1,43 @@ +use 5.6.0; + +use strict; +use warnings; + +use lib 't/lib'; + +my $base = 'http://localhost'; + +use RestTest; +use DBICTest; +use URI; +use Test::More; +use Test::WWW::Mechanize::Catalyst 'RestTest'; +use HTTP::Request::Common; +use JSON::Any; + +my $mech = Test::WWW::Mechanize::Catalyst->new; +ok(my $schema = DBICTest->init_schema(), 'got schema'); + +my $artist_view_url = "$base/api/rest/artist/"; + +{ + my $id = 1; + my $req = GET( $artist_view_url . $id, undef, 'Accept' => 'application/json' ); + $mech->request($req); + cmp_ok( $mech->status, '==', 200, 'open attempt okay' ); + my %expected_response = $schema->resultset('Artist')->find($id)->get_columns; + my $response = JSON::Any->Load( $mech->content); + is_deeply( $response, { data => \%expected_response, success => 'true' }, 'correct data returned' ); +} + +{ + my $id = 5; + my $req = GET( $artist_view_url . $id, undef, 'Accept' => 'application/json' ); + $mech->request($req); + cmp_ok( $mech->status, '==', 400, 'open attempt not ok' ); + my $response = JSON::Any->Load( $mech->content); + is($response->{success}, 'false', 'not existing object fetch failed ok'); + like($response->{messages}->[0], qr/^No object found for id/, 'error message for not existing object fetch ok'); +} + +done_testing();