Cmd-Dwarf

 view release on metacpan or  search on metacpan

examples/test-validate-json-body/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.713 second using v1.01-cache-2.11-cpan-df04353d9ac )