#!perl -w
use strict;
use Test::More;
use Data::Validator;
foreach my $v(
Data::Validator->new(
foo => 'Num',
)->with('Method', 'Sequenced'),
Data::Validator->new(
foo => 'Num',
)->with('Sequenced', 'Method'),
) {
note join ' ', map { $_->name }
grep { !$_->is_anon_role } $v->meta->calculate_all_roles;
isa_ok $v, 'Data::Validator';
my($class, $args) = $v->validate('MyClass', { foo => 42 });
is $class, 'MyClass';
is_deeply $args, { foo => 42 };
($class, $args) = $v->validate('MyClass', 3.14);
is $class, 'MyClass';
is_deeply $args, { foo => 3.14 };
note 'failing cases';
eval {
$v->validate('MyClass');
};
like $@, qr/Missing parameter: 'foo'/, 'missing parameters';
eval {
$v->validate('MyClass', {});
};
like $@, qr/Missing parameter: 'foo'/, 'missing parameters';
eval {
$v->validate('MyClass', {foo => 'bar'});
};
like $@, qr/Validation failed for 'Num' with value bar/, 'validation falure';
eval {
$v->validate('MyClass', 'bar');
};
like $@, qr/Validation failed for 'Num' with value bar/, 'validation falure';
}
done_testing;