use FindBin; use Data::Dumper; use Test::More; use utf8; use strict; use warnings; { use_ok 'Validation::Class::Simple::Streamer'; # passable my $params = { user => 'admin', # arbitrary pass => 's3cret', # arbitrary email_1 => 'admin@cpan.org', # dynamic created email_2 => 'root@cpan.org', # dynamic created email_3 => 'sa@cpan.org', # dynamic created }; my $p1 = Validation::Class::Simple::Streamer->new($params); if ($p1->check('user')->min_length(5)) { if ($p1->max_length(50)) { $p1->filters(['alpha', 'trim', 'strip']); ok $p1, "p1 validated"; } } ok !$p1->min_symbols(1), "p1 fails to validate min_symbols:1"; ok $p1->min_symbols(0), "p1 passes to validate min_symbols:0"; $p1->check('arbitrary')->required; $p1->validate; ok "$p1" eq "arbitrary is required", "p1 error message is accurate"; $p1->validator->fields->delete('user'); $p1->alias(['user'])->validate; ok "$p1" eq "", "p1 has no error messages"; $p1->clear; $p1->params(telephone => 11111); ok !$p1->check('telephone')->telephone, "p1 telephone number is invalid"; $p1->params(telephone => 2155551212); ok $p1->validate, "p1 telephone number is now valid"; $p1 = $p1->new($params); $p1->check($_)->min_length(3)->required->email for qw(email_1 email_2 email_3) ; # we don't like @localhost ok $p1->validate, "all email addresses valid"; } done_testing;