Cmd-Dwarf
view release on metacpan or search on metacpan
share/app/t/00_dwarf/validator/009_constraints.t view on Meta::CPAN
x1 => 0,
x2 => 1,
x3 => 1,
)
=== REGEX
--- query: { 'z1' => 'ba3', 'z2' => 'bao' }
--- rule
(
z1 => [['REGEX', '^ba[0-9]$']],
z2 => [['REGEXP', '^ba[0-9]$']],
)
--- expected
(
z1 => 0,
z2 => 1,
)
=== CHOICE
--- query: { 'z1' => 'foo', 'z2' => 'quux' }
--- rule
(
z1 => [ ['CHOICE' => [qw/foo bar baz/]] ],
z2 => [ ['IN' => [qw/foo bar baz/]] ],
)
--- expected
(
z1 => 0,
z2 => 1,
)
=== NOT_IN
--- query: { 'z1' => 'foo', 'z2' => 'quux', z3 => 'hoge', z4 => 'eee' }
--- rule
(
z1 => [ ['NOT_IN', [qw/foo bar baz/]] ],
z2 => [ ['NOT_IN', [qw/foo bar baz/]] ],
z3 => [ ['NOT_IN', []] ],
z4 => [ ['NOT_IN'] ],
)
--- expected
(
z1 => 1,
z2 => 0,
z3 => 0,
z4 => 0,
)
=== MATCH
--- query: { 'z1' => 'ba3', 'z2' => 'bao' }
--- rule
(
z1 => [[MATCH => sub { $_[0] eq 'ba3' } ]],
)
--- expected
(
z1 => 0,
)
=== BASE64_TYPE
--- query: { 'image' => 'iVBORw0KGgoAAAANSUhEUgAABLAAAAMgCAMAAAAEPmswAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sb...
--- rule
(
image => [[BASE64_TYPE => '(jpeg|png|gif)' ]],
invalid_image => [[BASE64_TYPE => '(jpeg|png|gif)' ]],
)
--- expected
(
image => 0,
invalid_image => 1,
)
=== FILTER
--- query: { 'foo' => ' 123 ', bar => 'one' }
--- rule
(
foo => [[FILTER => 'TRIM'], 'INT'],
bar => [[FILTER => sub { my $v = shift; $v =~ s/one/1/; $v } ], 'INT'],
)
--- expected
(
foo => 0,
bar => 0,
)
=== FILTER (TRIM/DEFAULT)
--- query: { 'foo' => ' 123 ' }
--- rule
(
foo => ['TRIM', 'INT'],
bar => [[DEFAULT => 1], 'INT'],
)
--- expected
(
foo => 0,
bar => 0,
)
=== FILTER (BLANK_TO_NULL)
--- query: { 'foo' => '', bar => '', baz => '' }
--- rule
(
foo => ['BLANK_TO_NULL'],
bar => ['BLANK_TO_NULL', 'NOT_NULL'],
baz => ['NOT_NULL'],
)
--- expected
(
foo => 0,
bar => 1,
baz => 0,
)
=== FILTER (with multiple values)
--- query: { 'foo' => [' 0 ', ' 123 ', ' 234 '], 'bar' => [qw(one one)] }
--- rule
(
foo => [[FILTER => 'trim'], 'INT'],
bar => [[FILTER => sub { my $v = shift; $v =~ s/one/1/; $v } ], 'INT'],
)
--- expected
( run in 0.856 second using v1.01-cache-2.11-cpan-df04353d9ac )