BEGIN {
use FindBin;
use lib $FindBin::Bin . "/myapp/lib";
}
use utf8;
use Test::More;
{
# testing the directive method
# this method is designed to register field directives which V::C will make
# available to all classes when instantiated
package MyApp1;
use Validation::Class;
dir is_true => sub {1};
fld name => {is_true => 1, required => 1,};
package MyApp2;
use Validation::Class;
directive is_true => sub {1};
field name => {is_true => 1, required => 1,};
package MyApp3;
use Validation::Class;
fld name => {
is_true => 1,
required => 1,
};
package main;
my ($class, $self);
$class = "MyApp1";
$self = $class->new(name => "...");
ok $class eq ref $self, "$class instantiated";
$self = undef;
$class = "MyApp2";
$self = $class->new(name => "...");
ok $class eq ref $self, "$class instantiated";
$self = undef;
$class = "MyApp3";
eval { $self = $class->new(name => "...") };
ok $@ =~ /directive.*not supported/,
"$class NOT instantiated, bad directive";
}
done_testing;