From 23e86df185aa2d5c18c0bea9b984838854dd541f Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Tue, 18 Nov 2014 01:05:30 -0300 Subject: [PATCH] Bug 13278: t/Search.t shouldn't depend on the DB To reproduce: - Stop your MySQL server: $ sudo service mysql stop - Run $ prove t/Search.t => FAIL: some tests fail because of mysql stopped To test (MySQL still stopped) - Apply the patch - Run $ prove t/Search.t => SUCCESS: tests pass because the ycan be loaded regardless of the absence of the DB server - Sign off :-D Regards Signed-off-by: Magnus Enger Turned off MySQL and ran the tests before and after the patch. Works as advertised. --- t/Search.t | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/t/Search.t b/t/Search.t index 286d36a..69ed79f 100755 --- a/t/Search.t +++ b/t/Search.t @@ -18,12 +18,20 @@ use Modern::Perl; use Test::More tests => 3; - -BEGIN { - use_ok('C4::Search'); - can_ok('C4::Search', - qw/_build_initial_query/); -} +use Test::MockModule; +use DBD::Mock; + +# Mock the DB connexion and C4::Context +my $context = new Test::MockModule('C4::Context'); +$context->mock( '_new_dbh', sub { + my $dbh = DBI->connect( 'DBI:Mock:', '', '' ) + || die "Cannot create handle: $DBI::errstr\n"; + return $dbh; +}); + +use_ok('C4::Search'); +can_ok('C4::Search', + qw/_build_initial_query/); subtest "_build_initial_query tests" => sub { -- 1.7.10.4