remove shebangs from tests
[catagits/Catalyst-Plugin-Session-State-Cookie.git] / t / basic.t
index b9559a7..60c33e4 100644 (file)
--- a/t/basic.t
+++ b/t/basic.t
@@ -1,84 +1,95 @@
-#!/usr/bin/perl
-
 use strict;
 use warnings;
 
 use Test::More tests => 13;
-use Test::MockObject;
-use Test::MockObject::Extends;
+
+use Catalyst::Plugin::Session;
 
 my $m;
 BEGIN { use_ok( $m = "Catalyst::Plugin::Session::State::Cookie" ) }
 
-my $cookie = Test::MockObject->new;
-$cookie->set_always( value => "the session id" );
+my $cookie_meta = Class::MOP::Class->create_anon_class( superclasses => ['Moose::Object'] );
+my $cookie = $cookie_meta->name->new;
+$cookie_meta->add_method( value => sub { "the session id" } );
 
-my $req = Test::MockObject->new;
+my $req_meta = Class::MOP::Class->create_anon_class( superclasses => ['Moose::Object'] );
 my %req_cookies;
-$req->set_always( cookies => \%req_cookies );
+$req_meta->add_method( cookies => sub { \%req_cookies } );
+my $req = $req_meta->name->new;
 
-my $res = Test::MockObject->new;
+my $res_meta = Class::MOP::Class->create_anon_class( superclasses => ['Moose::Object'] );
 my %res_cookies;
-$res->set_always( cookies => \%res_cookies );
-
-my $cxt =
-  Test::MockObject::Extends->new("Catalyst::Plugin::Session::State::Cookie");
+my $cookies_called = 0;
+$res_meta->add_method( cookies => sub { $cookies_called++; \%res_cookies });
+my $res = $res_meta->name->new;
+
+my $cxt_meta = Class::MOP::Class->create_anon_class(
+    superclasses => [qw/
+        Catalyst::Plugin::Session
+        Catalyst::Plugin::Session::State::Cookie
+        Moose::Object
+    /],
+);
 
-$cxt->set_always( config   => {} );
-$cxt->set_always( request  => $req );
-$cxt->set_always( response => $res );
-$cxt->set_always( session  => { } );
-$cxt->set_always( session_expires => 123 );
-$cxt->set_false("debug");
+my $config = {};
+$cxt_meta->add_method( config   => sub { $config });
+$cxt_meta->add_method( request  => sub { $req });
+$cxt_meta->add_method( response => sub { $res });
+$cxt_meta->add_method( session  => sub { { } } );
+$cxt_meta->add_method( session_expires => sub { 123 });
+$cxt_meta->add_method("debug" => sub { 0 });
 my $sessionid;
-$cxt->mock( sessionid => sub { shift; $sessionid = shift if @_; $sessionid } );
+$cxt_meta->add_method( sessionid => sub { shift; $sessionid = shift if @_; $sessionid } );
 
 can_ok( $m, "setup_session" );
 
+my $cxt = $cxt_meta->name->new;
 $cxt->setup_session;
 
-like( $cxt->config->{session}{cookie_name},
+like( $config->{'Plugin::Session'}{cookie_name},
     qr/_session$/, "default cookie name is set" );
 
-$cxt->config->{session}{cookie_name} = "session";
+$config->{'Plugin::Session'}{cookie_name} = "session";
 
 can_ok( $m, "get_session_id" );
 
 ok( !$cxt->get_session_id, "no session id yet");
 
-$cxt->clear;
+$cxt = $cxt_meta->name->new;
 
 %req_cookies = ( session => $cookie );
 
 is( $cxt->get_session_id, "the session id", "session ID was restored from cookie" );
 
-$cxt->clear;
-$res->clear;
+$cxt_meta->name->new;
+%res_cookies = ();
 
 can_ok( $m, "set_session_id" );
 $cxt->set_session_id("moose");
 
-$res->called_ok( "cookies", "created a cookie on set" );
+ok( $cookies_called, "created a cookie on set" );
+$cookies_called = 0;
 
-$cxt->clear;
-$res->clear;
+$cxt_meta->name->new;
+%res_cookies = ();
 
 $cxt->set_session_id($sessionid);
 
-$res->called_ok( "cookies", "response cookie was set when sessionid changed" );
+ok( $cookies_called, "response cookie was set when sessionid changed" );
 is_deeply(
     \%res_cookies,
     { session => { value => $sessionid, httponly => 1, expires => 123 } },
     "cookie was set correctly"
 );
 
-$cxt->clear;
-$req->clear;
+$cxt_meta->name->new;
 
 can_ok( $m, "cookie_is_rejecting" );
 
 %req_cookies = ( path => '/foo' );
-$req->set_always( path => '' );
+my $path = '';
+$req_meta->add_method( path => sub { $path } );
 ok( $cxt->cookie_is_rejecting(\%req_cookies), "cookie is rejecting" );
-$req->set_always( path => 'foo/bar' );
+$path = 'foo/bar';
 ok( !$cxt->cookie_is_rejecting(\%req_cookies), "cookie is not rejecting" );
+