The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

use Test::More tests => 10;

use HTML::FormFu;

my $form = HTML::FormFu->new;

$form->element('Text')->name('foo');
$form->element('Text')->name('bar');
$form->element('Text')->name('string');
$form->element('Text')->name('missing');

$form->constraint( 'Number', 'foo', 'bar', 'string' );

$form->process( {
        foo     => 1,
        bar     => [ 2, 3 ],
        string  => 'yada',
        unknown => 4,
    } );

ok( grep  { $_ eq 'foo' } $form->valid );
ok( grep  { $_ eq 'bar' } $form->valid );
ok( !grep { $_ eq 'string' } $form->valid );
ok( !grep { $_ eq 'unknown' } $form->valid );
ok( !grep { $_ eq 'missing' } $form->valid );

ok( $form->valid('foo'),      'foo valid' );
ok( $form->valid('bar'),      'bar valid' );
ok( !$form->valid('string'),  'string not valid' );
ok( !$form->valid('unknown'), 'unknown not valid' );
ok( !$form->valid('missing'), 'missing valid' );