View | Details | Raw Unified | Return to bug 36433
Collapse All | Expand All

(-)a/t/db_dependent/Koha/Plugins/Biblio_and_Items_plugin_hooks.t (-1 / +47 lines)
Lines 16-22 Link Here
16
16
17
use Modern::Perl;
17
use Modern::Perl;
18
18
19
use Test::More tests => 5;
19
use Test::More tests => 6;
20
use Test::Warn;
20
use Test::Warn;
21
21
22
use File::Basename;
22
use File::Basename;
Lines 137-139 subtest 'before_biblio_action() hooks tests' => sub { Link Here
137
    $schema->storage->txn_rollback;
137
    $schema->storage->txn_rollback;
138
    Koha::Plugins::Methods->delete;
138
    Koha::Plugins::Methods->delete;
139
};
139
};
140
141
subtest 'elasticsearch_to_document() hooks tests' => sub {
142
143
    plan tests => 6;
144
145
    $schema->storage->txn_begin;
146
147
    my $plugins = Koha::Plugins->new;
148
    $plugins->InstallPlugins;
149
150
    my $plugin = Koha::Plugin::Test->new->enable;
151
152
    my $test_plugin1 = Test::MockModule->new('Koha::Plugin::Test');
153
    $test_plugin1->mock( 'after_biblio_action', undef );
154
155
    # Create a record
156
    my $record = MARC::Record->new();
157
    $record->append_fields( MARC::Field->new( '009', '123456789' ) );
158
159
    my $indexer = Koha::SearchEngine::Elasticsearch::Indexer->new( { index => $Koha::SearchEngine::BIBLIOS_INDEX } );
160
    my $documents;
161
    warning_like { $documents = $indexer->marc_records_to_documents( [$record] ); }
162
    qr/elasticsearch_to_document ref record: MARC::Record - ref document: HASH/,
163
        'ES marc_records_to_document calls the hook';
164
165
    my $test_plugin2 = Test::MockModule->new('Koha::Plugin::Test');
166
    $test_plugin2->mock( 'after_biblio_action', undef );
167
168
    # Create an ES search field 'ppn' and populate it with 009 field
169
    $test_plugin2->mock(
170
        'elasticsearch_to_document',
171
        sub {
172
            my ( $self, $params ) = @_;
173
            my $record   = $params->{record};
174
            my $document = $params->{document};
175
            my $value    = $record->field('009')->data;
176
            $document->{ppn} = [$value];
177
        }
178
    );
179
    $documents = $indexer->marc_records_to_documents( [$record] );
180
    ok( ref($documents) eq 'ARRAY',                 'Indexer marc_records_to_documents returns an ARRAY' );
181
    ok( scalar(@$documents) == 1,                   'This array contains one (1) document' );
182
    ok( ref( $documents->[0] ) eq 'HASH',           'The document is a HASH' );
183
    ok( exists( $documents->[0]->{ppn} ),           'Generated field ppn exists' );
184
    ok( $documents->[0]->{ppn}->[0] eq '123456789', 'Field ppn contains 123456789' );
185
};
(-)a/t/lib/plugins/Koha/Plugin/Test.pm (-1 / +8 lines)
Lines 453-456 sub _private_sub { Link Here
453
    return "";
453
    return "";
454
}
454
}
455
455
456
sub elasticsearch_to_document {
457
    my ( $self, $params ) = @_;
458
    my $record = $params->{record};
459
    my $doc    = $params->{document};
460
461
    Koha::Exception->throw( "elasticsearch_to_document ref record: " . ref($record) . " - ref document: " . ref($doc) );
462
}
463
456
1;
464
1;
457
- 

Return to bug 36433