The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/bin/env perl

use strict;
use warnings;
use Test::More;
use Test::Exception;

my $pkg;
BEGIN {
    $pkg = 'Catmandu::Validator::Simple';
    use_ok $pkg;
}

require_ok $pkg;

my $v = Catmandu::Validator::Simple->new(handler => sub { $_[0]->{field} eq '1' ? undef :
   'Not 1'});;

can_ok $v, 'validate_data';

throws_ok { $v->new(handler => 1) } qr/handler should be a CODE reference/;

my $rec = {field => 1};

is $v->validate($rec), $rec,'validate - success' ;

is $v->validate({field => 3}), undef, 'validate - fails';

is_deeply $v->last_errors, ['Not 1'], 'last_errors returns error message';

done_testing 7;