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
|
use strict;
$^W = 1;
use Test::More tests => 8;
use Data::FormValidator;
my $input_profile = {
required => [ qw( email phone likes ) ],
optional => [ qq( toppings ) ],
constraints => {
email => "email",
phone => "phone",
likes => { constraint => sub {return 1;},
params => [ qw( likes email ) ],
},
},
dependencies => {
animal => [qw( species no_legs )],
plant => {
tree => [qw( trunk root )],
flower => [qw( petals stem )],
},
},
field_filters => {
email => sub {return $_[0];},
},
};
my $validator = new Data::FormValidator({default => $input_profile});
my $input_hashref = {email => 'invalidemail',
phone => '201-999-9999',
likes => ['a','b'],
toppings => 'foo',
animal => 'goat',
plant => 'flower'};
my ($valids, $missings, $invalids, $unknowns);
eval{
($valids, $missings, $invalids, $unknowns) = $validator->validate($input_hashref, 'default');
};
ok(not $@);
ok(exists $valids->{'phone'});
is($invalids->[0], 'email');
my %missings;
@missings{@$missings} = ();
#print "@$missings\n";
ok(exists $missings{$_}) for (qw(species no_legs petals stem));
is(@$missings, 4);
|