};
subtest 'Default values' => sub {
- plan tests => 2;
+ plan tests => 3;
+
$builder = t::lib::TestBuilder->new;
my $item = $builder->build( { source => 'Item' } );
is( $item->{more_subfields_xml}, undef, 'This xml field should be undef' );
$item = $builder->build( { source => 'Item', value => { more_subfields_xml => 'some xml' } } );
is( $item->{more_subfields_xml}, 'some xml', 'Default should not overwrite assigned value' );
+
+ subtest 'generated dynamically (coderef)' => sub {
+ plan tests => 2;
+ my $patron = $builder->build_object({ class => 'Koha::Patrons' });
+ like( $patron->category->category_type, qr{^(A|C|S|I|P|)$}, );
+
+ my $patron_category_X = $builder->build_object({ class => 'Koha::Patron::Categories', value => { category_type => 'X' } });
+ $patron = $builder->build_object({ class => 'Koha::Patrons', value => {categorycode => $patron_category_X->categorycode} });
+ is( $patron->category->category_type, 'X', );
+ };
};
subtest 'build_object() tests' => sub {
}
push @$retvalue, $value->{$col_name};
} elsif( exists $self->{default_values}{$source}{$col_name} ) {
- push @$retvalue, $self->{default_values}{$source}{$col_name};
+ my $v = $self->{default_values}{$source}{$col_name};
+ $v = &$v() if ref($v) eq 'CODE';
+ push @$retvalue, $v;
} else {
my $data_type = $col_info->{data_type};
$data_type =~ s| |_|;
Category => {
enrolmentfee => 0,
reservefee => 0,
+ # Not X, used for statistics
+ category_type => sub { return [ qw( A C S I P ) ]->[int(rand(5))] },
},
Itemtype => {
rentalcharge => 0,