use strict; use warnings; use Test::More; use Test::Exception; # tests the inflate_default_method { package Test::Deflate; use HTML::FormHandler::Moose; extends 'HTML::FormHandler'; has_field 'foo' => ( default => 'inflate me!', inflate_default_method => sub { my ( $self, $value ) = @_; if ( $value eq 'inflate me!' ) { return 'inflated value'; } else { return 'unexpected value'; } } ); } my $form = Test::Deflate->new; ok( $form, 'form builds' ); $form->process( params => {} ); is( $form->field('foo')->value, 'inflated value', 'inflate default values with inflate_default' ); $form->process( params => { foo => 'foo_from_params' } ); is( $form->field('foo')->value, 'foo_from_params', 'value out is from params' ); done_testing;