use strict;
use warnings;
use Test::More;
# this tests that a multiple select with value from an init_object
# has the right value with both a hashref and a blessed object
{
package MyApp::Form::Test;
use HTML::FormHandler::Moose;
extends 'HTML::FormHandler';
has_field 'foo' => ( type => 'Select', multiple => 1 );
sub options_foo {
[
1 => 'One',
2 => 'Two',
3 => 'Three',
4 => 'Four',
]
}
has_field 'bar';
}
{
package FooObject;
use Moose;
has 'foo' => (
is => 'ro',
isa => 'ArrayRef',
traits => ['Array'],
handles => {
'has_foo' => 'count',
}
);
has 'bar' => ( is => 'ro', isa => 'Str' );
}
my $form = MyApp::Form::Test->new;
ok( $form );
# try with hashref
my $init_obj = {
foo => [1],
bar => 'my_test',
};
$form->process( init_object => $init_obj );
is_deeply( $form->field('foo')->value, [1], 'right value for foo field with hashref init_obj' );
# try with object
my $foo = FooObject->new(
foo => [1],
bar => 'my_test',
);
$form->process( init_object => $foo );
is_deeply( $form->field('foo')->value, [1], 'right value for foo field with object init_obj' );
done_testing;