File: jv-if-then-else.t

package info (click to toggle)
libjson-validator-perl 5.14%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,160 kB
  • sloc: perl: 3,015; makefile: 14
file content (29 lines) | stat: -rw-r--r-- 886 bytes parent folder | download | duplicates (3)
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
use lib '.';
use t::Helper;

my $schema;

$schema = {
  if   => {properties => {ifx => {type      => 'string'}}},
  then => {properties => {ifx => {maxLength => 3}}},
  else => {properties => {ifx => {type      => 'number'}}},
};

validate_ok {ifx => 'foo'},    $schema;
validate_ok {ifx => 'foobar'}, $schema, E('/ifx', 'String is too long: 6/3.');
validate_ok {ifx => 42},       $schema;
validate_ok {ifx => []}, $schema, E('/ifx', 'Expected number - got array.');

$schema = {
  type => 'array',
  if   => {maxItems => 5},
  then => {items => {pattern => '^[0-9]$'}},
  else => {items => {pattern => '^[a-z]$'}},
};

validate_ok [qw(2 4 7)],       $schema;
validate_ok [qw(a 1)],         $schema, E('/0', 'String does not match ^[0-9]$.');
validate_ok [qw(6 q a b 8 z)], $schema, E('/0', 'String does not match ^[a-z]$.'),
  E('/4', 'String does not match ^[a-z]$.');

done_testing;