Bug 17950: Merge.t: Improve variable handling at top level

This patch does:
[1] Remove unused $dbh.
[2] Move all mocking statements to one sub.
[3] Promote a few lexicals to globals when used in the subtests.

Test plan:
Run t/db_dependent/Authorities/Merge.t

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>

Signed-off-by: Mark Tompsett <mtompset@hotmail.com>
Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
This commit is contained in:
Marcel de Rooy 2017-01-23 11:40:48 +01:00 committed by Kyle M Hall
parent 5d279befed
commit 849877d8d3
1 changed files with 23 additions and 22 deletions

View File

@ -28,20 +28,11 @@ t::lib::Mocks::mock_preference( 'marcflavour', $marcflavour ) if $marcflavour;
my $schema = Koha::Database->new->schema;
$schema->storage->txn_begin;
my $dbh = C4::Context->dbh;
# Some advanced mocking :)
my ( @zebrarecords, $index );
my $context_mod = Test::MockModule->new( 'C4::Context' );
my $search_mod = Test::MockModule->new( 'C4::Search' );
my $zoom_mod = Test::MockModule->new( 'ZOOM::Query::CCL2RPN', no_auto => 1 );
my $conn_obj = Test::MockObject->new;
my $zoom_obj = Test::MockObject->new;
my $zoom_record_obj = Test::MockObject->new;
set_mocks();
# Framework operations
my ( $authtype1, $authtype2 ) = modify_framework();
# Global variables, mocking and framework modifications
our ( @zebrarecords, $index );
my $mocks = set_mocks();
our ( $authtype1, $authtype2 ) = modify_framework();
subtest 'Test merge A1 to A2 (within same authtype)' => sub {
# Tests originate from bug 11700
@ -229,19 +220,29 @@ sub set_mocks {
# Mock ZOOM objects: They do nothing actually
# Get new_record_from_zebra to return the records
$context_mod->mock( 'Zconn', sub { $conn_obj; } );
$search_mod->mock( 'new_record_from_zebra', sub {
my $mocks;
$mocks->{context_mod} = Test::MockModule->new( 'C4::Context' );
$mocks->{search_mod} = Test::MockModule->new( 'C4::Search' );
$mocks->{zoom_mod} = Test::MockModule->new( 'ZOOM::Query::CCL2RPN', no_auto => 1 );
$mocks->{conn_obj} = Test::MockObject->new;
$mocks->{zoom_obj} = Test::MockObject->new;
$mocks->{zoom_record_obj} = Test::MockObject->new;
$mocks->{context_mod}->mock( 'Zconn', sub { $mocks->{conn_obj}; } );
$mocks->{search_mod}->mock( 'new_record_from_zebra', sub {
return if $index >= @zebrarecords;
return $zebrarecords[ $index++ ];
});
$zoom_mod->mock( 'new', sub {} );
$mocks->{zoom_mod}->mock( 'new', sub {} );
$conn_obj->mock( 'search', sub { $zoom_obj; } );
$zoom_obj->mock( 'destroy', sub {} );
$zoom_obj->mock( 'record', sub { $zoom_record_obj; } );
$zoom_obj->mock( 'search', sub {} );
$zoom_obj->mock( 'size', sub { @zebrarecords } );
$zoom_record_obj->mock( 'raw', sub {} );
$mocks->{conn_obj}->mock( 'search', sub { $mocks->{zoom_obj}; } );
$mocks->{zoom_obj}->mock( 'destroy', sub {} );
$mocks->{zoom_obj}->mock( 'record', sub { $mocks->{zoom_record_obj}; } );
$mocks->{zoom_obj}->mock( 'search', sub {} );
$mocks->{zoom_obj}->mock( 'size', sub { @zebrarecords } );
$mocks->{zoom_record_obj}->mock( 'raw', sub {} );
return $mocks;
}
sub modify_framework {