use strict; use Test::More tests => 3; use lib ('.','../t'); # Verify that multiple params passed to a constraint are being handled correctly $^W = 1; use Data::FormValidator; my $validator = new Data::FormValidator({ default => { required => [ qw/my_zipcode_field my_other_field/], constraints => { my_zipcode_field => { constraint => \&zipcode_check, name => 'zipcode', params => [ 'my_zipcode_field', 'my_other_field' ], }, }, }, }); my @args_for_check; # to control which args were given sub zipcode_check { @args_for_check = @_; if ($_[0] == 402015 and $_[1] eq 'mapserver_rulez') { return 1; } return 0; } my $input_hashref = { my_zipcode_field => '402015', my_other_field => 'mapserver_rulez', }; my ($valids, $missings, $invalids, $unknowns); eval{ ($valids, $missings, $invalids, $unknowns) = $validator->validate($input_hashref, 'default'); }; ok(not $@) or diag "eval error: $@"; ok(not grep { (ref $_) eq 'ARRAY' } @$invalids) or diag $#{$invalids}; is_deeply(\@args_for_check, [402015,'mapserver_rulez']); # Local variables: # compile-command: "cd .. && make test" # End: