]> Dogcows Code - chaz/p5-CGI-Ex/blob - t/1_validate_07_yaml.t
12d1c1fdee2b587fff07da64d684306d53a253c8
[chaz/p5-CGI-Ex] / t / 1_validate_07_yaml.t
1 # -*- Mode: Perl; -*-
2
3 =head1 NAME
4
5 1_validate_07_yaml.t - Check for CGI::Ex::Validate's ability to use YAML.
6
7 =cut
8
9 use strict;
10 use Test::More tests => 15;
11
12 SKIP: {
13
14 skip("Missing YAML.pm", 15) if ! eval { require 'YAML' };
15
16 use_ok('CGI::Ex::Validate');
17
18 my $N = 0;
19 my $v;
20 my $e;
21
22 sub validate { scalar CGI::Ex::Validate::validate(@_) }
23
24 ###----------------------------------------------------------------###
25
26 ### single group
27 $v = '
28 user:
29 required: 1
30 foo:
31 required_if: bar
32 ';
33
34 $e = validate({}, $v);
35 ok($e);
36 $e = validate({user => 1}, $v);
37 ok(! $e);
38 $e = validate({user => 1, bar => 1}, $v);
39 ok($e);
40 $e = validate({user => 1, bar => 1, foo => 1}, $v);
41 ok(! $e);
42
43
44 ### three groups, some with validate_if's - using arrayref
45 $v = '
46 - group validate_if: foo
47 bar:
48 required: 1
49 - group validate_if: hem
50 haw: { required: 1 }
51 - raspberry:
52 required: 1
53 ';
54
55 $e = validate({}, $v);
56 ok($e);
57
58 $e = validate({
59 raspberry => 'tart',
60 }, $v);
61 ok(! $e);
62
63 $e = validate({
64 foo => 1,
65 raspberry => 'tart',
66 }, $v);
67 ok($e);
68
69 $e = validate({
70 foo => 1,
71 bar => 1,
72 raspberry => 'tart',
73 }, $v);
74 ok(! $e);
75
76 $e = validate({
77 foo => 1,
78 bar => 1,
79 hem => 1,
80 raspberry => 'tart',
81 }, $v);
82 ok($e);
83
84 $e = validate({
85 foo => 1,
86 bar => 1,
87 hem => 1,
88 haw => 1,
89 raspberry => 'tart',
90 }, $v);
91 ok(! $e);
92
93
94 ### three groups, some with validate_if's - using documents
95 $v = '---
96 group validate_if: foo
97 bar:
98 required: 1
99 ---
100 group validate_if: hem
101 haw: { required: 1 }
102 ---
103 raspberry:
104 required: 1
105 ';
106
107 $e = validate({}, $v);
108 ok($e);
109
110 $e = validate({
111 raspberry => 'tart',
112 }, $v);
113 ok(! $e);
114
115 $e = validate({
116 foo => 1,
117 raspberry => 'tart',
118 }, $v);
119 ok($e);
120
121 $e = validate({
122 foo => 1,
123 bar => 1,
124 raspberry => 'tart',
125 }, $v);
126 ok(! $e);
127
128 $e = validate({
129 foo => 1,
130 bar => 1,
131 hem => 1,
132 raspberry => 'tart',
133 }, $v);
134 ok($e);
135
136 $e = validate({
137 foo => 1,
138 bar => 1,
139 hem => 1,
140 haw => 1,
141 raspberry => 'tart',
142 }, $v);
143 ok(! $e);
144
145 } # end of SKIP
This page took 0.036626 seconds and 3 git commands to generate.