From ea9c29d945cb1f4c5bffb74445208303c0361d3b Mon Sep 17 00:00:00 2001 From: David Cook Date: Tue, 18 Feb 2020 03:02:55 +0000 Subject: [PATCH] First Draft buildQuery unit test https://bugs.koha-community.org/show_bug.cgi?id=12430 --- t/Search.t | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/t/Search.t b/t/Search.t index 0959c85de0..a953bc957a 100755 --- a/t/Search.t +++ b/t/Search.t @@ -24,7 +24,7 @@ use Module::Load::Conditional qw/check_install/; BEGIN { if ( check_install( module => 'Test::DBIx::Class' ) ) { - plan tests => 3; + plan tests => 6; } else { plan skip_all => "Need Test::DBIx::Class" } @@ -36,6 +36,60 @@ use Test::DBIx::Class; use_ok('C4::Search'); can_ok('C4::Search', qw/_build_initial_query/); +can_ok('C4::Search', + qw/buildQuery/); + +subtest "buildQuery basic search" => sub { + plan tests => 9; + t::lib::Mocks::mock_preference('QueryWeightFields', '1'); + t::lib::Mocks::mock_preference('QueryAutoTruncate', '1'); + t::lib::Mocks::mock_preference('UseQueryParser', '0'); + my $operators = []; + my $operands = ["test"]; + my $indexes = []; + my $limits = []; + my $sort_by = []; + my $scan; + my $lang; + + my ($error,$query,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit_desc,$query_type) = + C4::Search::buildQuery($operators,$operands,$indexes,$limits,$sort_by,$scan,$lang); + is($error,undef,"Error is correct"); + is($query,'(rk=(kw,wrdl,rtrn=test )) ','Query is correct'); + is($simple_query,'test',"Simple query is correct"); + is($query_cgi,'idx=kw&q=test','Query cgi is correct'); + is($query_desc,'kw,wrdl: test','Query desc is correct'); + is($limit,undef,"Limit is correct"); + is($limit_cgi,undef,"Limit cgi is correct"); + is($limit_desc,undef,"Limit desc is correct"); + is($query_type,undef,"Query type is correct"); +}; + +subtest "buildQuery truncated search" => sub { + plan tests => 9; + t::lib::Mocks::mock_preference('QueryWeightFields', '1'); + t::lib::Mocks::mock_preference('QueryAutoTruncate', '1'); + t::lib::Mocks::mock_preference('UseQueryParser', '0'); + my $operators = []; + my $operands = ["test*"]; + my $indexes = []; + my $limits = []; + my $sort_by = []; + my $scan; + my $lang; + + my ($error,$query,$simple_query,$query_cgi,$query_desc,$limit,$limit_cgi,$limit_desc,$query_type) = + C4::Search::buildQuery($operators,$operands,$indexes,$limits,$sort_by,$scan,$lang); + is($error,undef,"Error is correct"); + is($query,'(rk=(kw,wrdl,rtrn=test )) ','Query is correct'); + is($simple_query,'test*',"Simple query is correct"); + is($query_cgi,'idx=kw&q=test%2A','Query cgi is correct'); + is($query_desc,'kw,wrdl: test*','Query desc is correct'); + is($limit,undef,"Limit is correct"); + is($limit_cgi,undef,"Limit cgi is correct"); + is($limit_desc,undef,"Limit desc is correct"); + is($query_type,undef,"Query type is correct"); +}; subtest "_build_initial_query tests" => sub { -- 2.11.0