use strict; use warnings; use Test::More tests => 3; use Test::Run::Base; package MyTestRun::Plug::Iface; package MyTestRun::Pluggable; use Moose; extends("Test::Run::Base::PlugHelpers"); use MRO::Compat; sub BUILD { my $self = shift; $self->register_pluggable_helper( { id => "myplug", base => "MyTestRun::Plug::Base", collect_plugins_method => "_my_plugin_collector", } ); } sub _my_plugin_collector { return [ "MyTestRun::Plug::P::One", "MyTestRun::Plug::P::Two", ]; } sub helpers_base_namespace { my $self = shift; return "MyTestRun::Pluggable::Helpers"; } package main; use lib "./t/lib"; { my $main_obj = MyTestRun::Pluggable->new({}); my $obj = $main_obj->create_pluggable_helper_obj( { id => "myplug", args => { first => "Aharon", 'last' => "Smith", }, } ); # TEST isa_ok ($obj, $main_obj->calc_helpers_namespace("myplug")); # TEST is ($obj->my_calc_first(), "First is {{{Aharon}}}", ); # TEST is ($obj->my_calc_last(), "If you want the last name, it is: Smith" ); }