-
Notifications
You must be signed in to change notification settings - Fork 75
/
init_object.t
61 lines (41 loc) · 1.34 KB
/
init_object.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
use Test::More;
use lib 't/lib';
BEGIN {
eval "use DBIx::Class";
plan skip_all => 'DBIX::Class required' if $@;
plan tests => 7;
}
use_ok('HTML::FormHandler::Model::DBIC');
use BookDB::Schema::DB;
my $schema = BookDB::Schema::DB->connect('dbi:SQLite:t/db/book.db');
{
package My::Form;
use HTML::FormHandler::Moose;
extends 'HTML::FormHandler::Model::DBIC';
has '+item_class' => ( default => 'Book' );
has_field 'title' => ( type => 'Text', required => 1 );
has_field 'author' => ( type => 'Text' );
sub init_value_author
{
'Pick a Better Author'
}
}
my $init_object = {
'title' => 'Fill in the title',
'author' => 'Enter an Author',
};
my $form = My::Form->new( init_object => $init_object, schema => $schema );
ok( $form, 'get form');
my $title_field = $form->field('title');
is( $title_field->value, 'Fill in the title', 'get title from init_object');
my $author_field = $form->field('author');
is( $author_field->value, 'Pick a Better Author', 'get init value from form' );
my $params = {
'title' => 'We Love to Test Perl Form Processors',
'author' => 'B.B. Better',
};
ok( $form->validate( $params ), 'validate data' );
ok( $form->update_model, 'update validated data');
my $book = $form->item;
is( $book->title, 'We Love to Test Perl Form Processors', 'title updated');
$book->delete;