Mangle the request class mangling stuff. It's still fugly, but it's no longer totally...
[catagits/Catalyst-Action-Serialize-Data-Serializer.git] / t / catalyst-request-rest.t
index ac49e29..ebb7b7d 100644 (file)
@@ -1,6 +1,6 @@
 use strict;
 use warnings;
-use Test::More tests => 28;
+use Test::More;
 use FindBin;
 use lib ( "$FindBin::Bin/../lib", "$FindBin::Bin/../t/lib" );
 
@@ -168,14 +168,25 @@ use HTTP::Headers;
 }
 
 {
+  local %ENV=%ENV;
+  $ENV{CATALYST_DEBUG} = 0;
   my $test = 'Test::Catalyst::Action::REST';
   use_ok $test;
   is($test->request_class, 'Catalyst::Request::REST',
     'Request::REST took over for Request');
 
-  $test->request_class('Some::Other::Class');
+  my $meta = Moose::Meta::Class->create_anon_class(
+      superclasses => ['Catalyst::Request'],
+  );
+  $meta->add_method('__random_method' => sub { 42 });
+
+  $test->request_class($meta->name);
+  # FIXME - setup_finished(0) is evil!
   eval { $test->setup_finished(0); $test->setup };
-  like $@, qr/$test has a custom request class Some::Other::Class/;
+  ok !$@, 'Can setup again';
+  isnt $test->request_class, $meta->name, 'Different request class';
+  ok $test->request_class->can('__random_method'), 'Is right class';
+  ok $test->request_class->can('data'), 'Also smells like REST subclass';
 
   {
     package My::Request;
@@ -186,6 +197,8 @@ use HTTP::Headers;
   is $@, '', 'no error from Request::REST subclass';
 }
 
+done_testing;
+
 package MockContext;
 
 sub prepare_body { }