X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Frest%2Fstashedclass.t;h=f28fc418dab6ebca2adb2e0f3e4082ca7df60254;hb=1513365d90fd22c305d8408ace1b971e6991114b;hp=84abd26111a82b4e903ba6da1c6e5e73a4ae76c7;hpb=07b00970f381c386ff40e4f13d5ab3c8bcf72c43;p=catagits%2FCatalyst-Controller-DBIC-API.git diff --git a/t/rest/stashedclass.t b/t/rest/stashedclass.t index 84abd26..f28fc41 100644 --- a/t/rest/stashedclass.t +++ b/t/rest/stashedclass.t @@ -12,7 +12,6 @@ use Test::More; use Test::WWW::Mechanize::Catalyst 'RestTest'; use HTTP::Request::Common; use JSON; -use Data::Dumper; my $json = JSON->new->utf8; @@ -53,4 +52,32 @@ my $base_url = "$base/api/rest/stashedclass"; like($response->{messages}[0], qr/current_result_set.*does not pass the type constraint/, 'invalid class'); } + +{ + no warnings; + # stash->{class} should always win over $self->class + *Catalyst::Controller::DBIC::API::class = sub { 'RestTestDB::CD' }; + + my $class = 'RestTestDB::Artist'; + my $req = GET( "$base_url/$class", {}, 'Accept' => 'text/x-json'); + $mech->request($req); + cmp_ok( $mech->status, '==', '200', "status OK" ); + my $response = $json->decode( $mech->content ); + is($response->{success}, 'true', 'success'); + is(scalar( @{$response->{list}} ), 3, 'three results - artist'); +} + +{ + no warnings; + # stash->{class} not present, ->class should be returned + *Catalyst::Controller::DBIC::API::class = sub { 'RestTestDB::CD' }; + + my $req = GET( "$base_url/noclass", {}, 'Accept' => 'text/x-json'); + $mech->request($req); + cmp_ok( $mech->status, '==', '200', "status OK" ); + my $response = $json->decode( $mech->content ); + is($response->{success}, 'true', 'success'); + is(scalar( @{$response->{list}} ), 6, 'six results - cd'); +} + done_testing();