Koha/t/searchengine/003_query/buildquery.t
Jonathan Druart 9509062072 Bug 10298: Adapt existing code
set_solr and set_zebra is not really useful. It is preferable to use
mock_preference directly.

To test:
1/ Launch Solr
2/ prove -r t/searchengine/
It should produce:
% prove -r t/searchengine/
t/searchengine/000_conn/conn.t ........... ok
t/searchengine/001_search/search_base.t .. ok
t/searchengine/002_index/index_base.t .... IndexRecord called with biblio 2
Indexing biblio 2
t/searchengine/002_index/index_base.t .... ok
t/searchengine/003_query/buildquery.t .... ok
t/searchengine/004_config/load_config.t .. ok
All tests successful.
Files=5, Tests=21,  4 wallclock secs ( 0.03 usr  0.01 sys +  2.74 cusr
0.20 csys =  2.98 CPU)
Result: PASS

Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>

Had to get Solr going again to test this, man .. they could make that
easier

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
2013-08-09 16:36:17 +00:00

44 lines
1.3 KiB
Perl

use Modern::Perl;
use Test::More;
use C4::Context;
use Koha::SearchEngine;
use Koha::SearchEngine::QueryBuilder;
use t::lib::Mocks;
my $titleindex = "title";
my $authorindex = "author";
#my $eanindex = "str_ean";
#my $pubdateindex = "date_pubdate";
my ($operands, $indexes, $operators);
# === Solr part ===
@$operands = ('cup', 'rowling');
@$indexes = ('ti', 'au');
@$operators = ('AND');
t::lib::Mocks::mock_preference('SearchEngine', 'Solr');
my $qs = Koha::SearchEngine::QueryBuilder->new;
my $se = Koha::SearchEngine->new;
is( $se->name, "Solr", "Test searchengine name eq Solr" );
my $gotsolr = $qs->build_advanced_query($indexes, $operands, $operators);
my $expectedsolr = "ti:cup AND au:rowling";
is($gotsolr, $expectedsolr, "Test build_query Solr");
# === Zebra part ===
t::lib::Mocks::mock_preference('SearchEngine', 'Zebra');
$se = Koha::SearchEngine->new;
is( $se->name, "Zebra", "Test searchengine name eq Zebra" );
$qs = Koha::SearchEngine::QueryBuilder->new;
my ( $builterror, $builtquery, $simple_query, $query_cgi, $query_desc, $limit, $limit_cgi, $limit_desc, $stopwords_removed, $query_type ) = $qs->build_query($operators, $operands, $indexes);
my $gotzebra = $builtquery;
my $expectedzebra = qq{ti,wrdl= cup AND au,wrdl= rowling };
is($gotzebra, $expectedzebra, "Test Zebra indexes in 'normal' search");
done_testing;