Bug 14334: Remove AutoCommit from tests
[koha.git] / t / db_dependent / Koha / Item / Search / Field.t
1 #!/usr/bin/perl
2
3 use Modern::Perl;
4 use Test::More tests => 11;
5
6 use C4::Context;
7 use Koha::Database;
8
9 use_ok('Koha::Item::Search::Field');
10 import Koha::Item::Search::Field qw(AddItemSearchField ModItemSearchField
11     DelItemSearchField GetItemSearchField GetItemSearchFields);
12
13 my $schema = Koha::Database->new->schema;
14 $schema->storage->txn_begin;
15
16 # Start with empty table.
17 foreach my $field (GetItemSearchFields()) {
18     DelItemSearchField($field->{name});
19 }
20 is(scalar GetItemSearchFields(), 0, "No existing search field");
21
22 # Missing keys in hashref parameter, so returns undef
23 ok(not (defined AddItemSearchField()), "missing keys => fail");
24 ok(not (defined AddItemSearchField({})), "missing keys => fail");
25 ok(not (defined AddItemSearchField({name => 'foo'})), "missing keys => fail");
26 ok(not (defined AddItemSearchField({name => 'foo', label => 'Foo'})), "missing keys => fail");
27
28 # Success, the field hashref is returned
29 ok('HASH' eq ref AddItemSearchField({name => 'foo', label => 'Foo', tagfield => '001'}), "successful add");
30
31 # Check the table now contains one row.
32 is(scalar GetItemSearchFields(), 1, "Table now contains one row");
33 my $field = GetItemSearchField('foo');
34 is_deeply($field, {name => 'foo', label => 'Foo', tagfield => '001', tagsubfield => undef, authorised_values_category => undef});
35
36 ok((defined ModItemSearchField({name => 'foo', label => 'Foobar', tagfield => '100', 'tagsubfield' => 'a'})), "successful mod");
37 $field = GetItemSearchField('foo');
38 is_deeply($field, {name => 'foo', label => 'Foobar', tagfield => '100', tagsubfield => 'a', authorised_values_category => undef});