use Test::More tests => 8; BEGIN { use FindBin; use lib $FindBin::Bin . "/modules"; } package MyVal; use Validation::Class; set { classes => [__PACKAGE__], plugins => ['+MyVal::Plugin::Glade'] }; package ValMy; use Validation::Class; package ValMy::Alt; use Validation::Class; set { plugins => ['+MyVal::Plugin::Glade'] }; package main; my $v = MyVal->new(params => {foo => 1}); ok $v, 'initialization successful'; ok 'abc' eq $v->squash, 'glade plugin applied squash method to base'; eval { $v->stash->{smell}->() && $v->stash->{squirt}->() }; ok !$@, 'glade plugin applied to base'; my $p = $v->class('person'); eval { $p->stash->{smell}->() && $p->stash->{squirt}->() }; ok !$@, 'glade plugin applied to person'; $v = ValMy->new(params => {foo => 1}); ok $v, 'initialization successful'; ok !do { defined $v->stash->{smell} && defined $v->stash->{squirt} }, 'glade plugin not applied to base'; $p = ValMy::Alt->new(params => {foo => 1}); eval { $p->stash->{smell}->() && $p->stash->{squirt}->() }; ok !$@, 'glade plugin applied to person'; ok ref $p->plugin('/my_val/plugin/glade'), 'plugin instance retrieved';