|
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 |
}; |