File: 13_validator_packages.t

package info (click to toggle)
libdata-formvalidator-perl 4.66-1%2Bsqueeze1
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 588 kB
  • ctags: 127
  • sloc: perl: 2,756; makefile: 2
file content (86 lines) | stat: -rw-r--r-- 2,006 bytes parent folder | download | duplicates (7)
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86

use strict;
use lib ('.','../t','t/');

$^W = 1;

use Test::More tests => 8;

use Data::FormValidator;

my $input_profile = {
			  validator_packages => 'ValidatorPackagesTest1',
			  required => ['required_1','required_2','required_3'],
			  constraints => {
				required_1 	=> 'single_validator_success_expected',
				required_2 	=> 'single_validator_failure_expected',
			  },
			    field_filters => {
			    required_3  => 'single_filter_remove_whitespace',
			  },
			};

my $validator = new Data::FormValidator({default => $input_profile});

my $input_hashref = {
	required_1  => 123,
	required_2	=> 'testing',
    required_3  => '  has whitespace  ',
};

my ($valids, $missings, $invalids, $unknowns);

eval{
  ($valids, $missings, $invalids, $unknowns) = $validator->validate($input_hashref, 'default');
};
ok(not $@) or 
  diag "eval error: $@";

ok(defined $valids->{required_1});

# Test to make sure that the field failed imported validator
ok(grep /required_2/, @$invalids);

ok(defined $valids->{required_3});

is($valids->{required_3}, 'has whitespace');

#### Now test importing from multiple packages

$input_profile = {
			  validator_packages => ['ValidatorPackagesTest1','ValidatorPackagesTest2'],
			  required => ['required_1','required_2'],
			  constraints => {
				required_1 	=> 'single_validator_success_expected',
				required_2 	=> 'multi_validator_success_expected',
			  },
			};

$validator = new Data::FormValidator({default => $input_profile});

$input_hashref = {
	required_1  => 123,
	required_2	=> 'testing',
};

eval{
  ($valids, $missings, $invalids, $unknowns) = $validator->validate($input_hashref, 'default');
};


ok(defined $valids->{required_1});

ok(defined $valids->{required_2});

# Now test calling 'validate' as a class method
use Data::FormValidator;

eval {
  my ($valid,$missing,$invalid) = Data::FormValidator->validate($input_hashref,{
        required=>[qw/required_1/],
        validator_packages=> 'Data::FormValidator',
    });
};
ok(not $@);