2 use Test::More tests => 6;
9 use C4::Acquisition qw( FillWithDefaultValues );
12 my $schema = Koha::Database->new->schema;
13 $schema->storage->txn_begin;
15 my $biblio_module = Test::MockModule->new('C4::Biblio');
16 my $default_author = 'default author';
17 my $default_x = 'my default value';
22 # default for a control field
24 x => { defaultvalue => $default_x },
27 # default value for an existing field
29 c => { defaultvalue => $default_author },
36 # default for a nonexisting field
38 x => { defaultvalue => $default_x },
44 my $record = MARC::Record->new;
45 $record->leader('03174nam a2200445 a 4500');
49 '@' => '120829t20132012nyu bk 001 0ceng',
53 a => 'Knuth, Donald Ervin',
58 a => 'The art of computer programming',
59 c => 'Donald E. Knuth.',
62 245, '1', '4', a => 'my second title',
66 $record->append_fields(@fields);
68 C4::Acquisition::FillWithDefaultValues($record);
70 my @fields_245 = $record->field(245);
71 is( scalar(@fields_245), 2, 'No new 245 field has been created' );
72 my @subfields_245_0 = $fields_245[0]->subfields;
73 my @subfields_245_1 = $fields_245[1]->subfields;
76 [ [ 'a', 'The art of computer programming' ], [ 'c', 'Donald E. Knuth.' ] ],
77 'first 245 field has not been updated'
81 [ [ 'a', 'my second title' ], [ 'c', $default_author ] ],
82 'second 245 field has a new subfield c with a default value'
85 my @fields_099 = $record->field('099');
86 is( scalar(@fields_099), 1, '1 new 099 field has been created' );
87 my @subfields_099 = $fields_099[0]->subfields;
90 [ [ 'x', $default_x ] ],
91 '099$x contains the default value'
94 # Test controlfield default
95 $record->field('008')->update( undef );
96 C4::Acquisition::FillWithDefaultValues($record);
97 is( $record->field('008')->data, $default_x, 'Controlfield got default' );
99 $schema->storage->txn_rollback;