MojoX-Validate-Util

 view release on metacpan or  search on metacpan

lib/MojoX/Validate/Util.pm  view on Meta::CPAN

This method uses neither L<Mojolicious::Validator> nor L<Mojolicious::Validator::Validation>.

=head2 check_member($params, $topic, $set)

Parameters:

=over 4

=item o $params => A hashref

E.g.: $params = {love_popup_ads => $value, ...}.

=item o $topic => The name of the parameter being tested

E.g.: $topic = 'love_popup_ads'.

=item o $set => An arrayref of strings

E.g.: ['Yes', B<'No'>].

=back

Return value: Integer (0 or 1) as returned by L<Mojolicious::Validator::Validation#is_valid>.

=over 4

scripts/demo.pl  view on Meta::CPAN

			print "output:    $output. \n";
			print 'failed:    ', join(', ', @{$validation -> failed}), ". \n";
			print 'passed:    ', join(', ', @{$validation -> passed}), ". \n";
			print '-' x 15, ". \n";
		}
	}
}

@data =
(
	{love_popup_ads => 'No'},
	{love_popup_ads => 'Nyet'},
);

my($topic)	= 'love_popup_ads';
my(@set)	= ('Yes', 'No');

my($infix);
my($result);

for my $i (0 .. $#data)
{
	$params = $data[$i];

	print 'params:     ', hashref2string($params), ". \n";

	$validator	= Mojolicious::Validator -> new;
	$validation	= Mojolicious::Validator::Validation->new(validator => $validator);

	$validation -> input($params); # Not a required call with MojoX::Validate::Util.

	$infix	= ($i == 0) ? 'is' : 'is not';
	$result = $validation -> required($topic) -> in(@set) -> is_valid ? 1 : 0;

	print "Membership: $result (meaning '$$params{love_popup_ads}' $infix in the set "
		. "@{[join(', ', map{qq|'$_'|} @set)]}). \n";
}

print "Finished. \n";

t/04.member.t  view on Meta::CPAN


use Test::More;

use MojoX::Validate::Util;

# ------------------------------------------------

my($test_count)	= 0;
my(@data)		=
(
	{love_popup_ads => 'No'},	# Pass.
	{love_popup_ads => 'Nyet'},	# Fail
);

my($checker);
my($expected);
my($infix);
my($message);
my($params);
my($result);

for my $i (0 .. $#data)
{
	$checker	= MojoX::Validate::Util -> new;
	$params		= $data[$i];
	$expected	= ($i == 0) ? 1 : 0;
	$infix		= $expected ? '' : 'not ';
	$message	= (defined($$params{love_popup_ads}) ? "'$$params{love_popup_ads}'" : 'undef') . " does ${infix}satisfy a membership check";
	$result		= $checker -> check_member($params, 'love_popup_ads', ['Yes', 'No']) ? 1 : 0;

	ok($result == $expected, $message); $test_count++;
}

print "# Internal test count: $test_count\n";

done_testing($test_count);



( run in 2.075 seconds using v1.01-cache-2.11-cpan-364913b4093 )