1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
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;
|