FU

 view release on metacpan or  search on metacpan

t/validate.t  view on Meta::CPAN

        keys => {
            name => {},
            age => { missing => 'ignore' },
            sex => { missing => 'reject', default => 1 }
        }
    },
);


sub t($schema, $input, $output) {
    my $line = (caller)[2];

    my $schema_copy = dclone([$schema])->[0];
    my $input_copy = dclone([$input])->[0];

    #diag explain FU::Validate->compile($schema, \%validations) if $line == 95;
    my $res = FU::Validate->compile($schema, \%validations)->validate($input);
    is_deeply $schema, $schema_copy, "schema modification $line";
    is_deeply $input,  $input_copy,  "input modification $line";
    is_deeply $res, $output, "data ok $line";
}

sub f($schema, $input, $error, @msg) {
    my $line = (caller)[2];

    my $schema_copy = dclone([$schema])->[0];
    my $input_copy = dclone([$input])->[0];

    #diag explain FU::Validate->compile($schema, \%validations) if $line == 176;
    ok !eval { FU::Validate->compile($schema, \%validations)->validate($input); 1 }, "eval $line";
    is_deeply $schema, $schema_copy, "schema modification $line";
    is_deeply $input,  $input_copy,  "input modification $line";
    delete $@->{longmess};
    is_deeply { $@->%* }, $error, "err $line";



( run in 0.714 second using v1.01-cache-2.11-cpan-a3c8064c92c )