#!/usr/bin/perl use strict; use Test::More tests => 6; use Test::Exception; ####################################################################### # test pluggable implementation ####################################################################### use lib 't/lib'; use Testproject::Pluggable; use Froody::Dispatch; my $client = Froody::Dispatch->config({ modules =>[qw(Testproject::Pluggable)], filters =>[qw(**)] }); ok(my $ret = $client->call('testproject.object.session_test', session_id => 'fooo')); is($ret, 'fooo'); use Data::Dumper; ok ($client->call('froody.reflection.getMethodInfo', method_name => 'testproject.object.session.invalidate'), 'plugin-registered method found'); our $plugin_invalidate_called; lives_and { $ret = $client->call('testproject.object.session.invalidate', session_id => 'booo'); is_deeply $ret, {}, 'Per spec, invalidate returns empty hash'; } "can call the session invalidate method"; isa_ok($plugin_invalidate_called->[0], 'Testproject::Pluggable', 'the plugin method got implementation context'); is($plugin_invalidate_called->[0]->session, 'booo', 'session got populated for that method as well');