Bug 15160: GetTopIssues.t should create random data
This patch refactors t/db_dependent/Circulation/GetTopIssues.t so it creates its own data with random values. It does so by replacing (legacy) SQL inserts and fixed value data inserting by TestBuilder generated data. There is no expected behaviour change. To test: - Create an itemtyp directly on your DB with GTI_I_TEST as its itemtype > INSERT INTO itemtypes (itemtype) VALUES ('GTI_I_TEST'); - Run: $ prove t/db_dependent/Circulation/GetTopIssues.t => FAIL: The insert line fails - Apply the patch - Run: $ prove t/db_dependent/Circulation/GetTopIssues.t => SUCCESS: tests pass due to random data usage. - Sign off Signed-off-by: Frederic Demians <f.demians@tamil.fr> Test plan produces the expected result, failing, then OK. Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
parent
4a4dbbf123
commit
9c20a3f797
1 changed files with 37 additions and 19 deletions
|
@ -1,8 +1,25 @@
|
|||
#!/usr/bin/env perl
|
||||
#!/usr/bin/perl
|
||||
|
||||
# This file is part of Koha.
|
||||
#
|
||||
# Koha is free software; you can redistribute it and/or modify it
|
||||
# under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# Koha is distributed in the hope that it will be useful, but
|
||||
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with Koha; if not, see <http://www.gnu.org/licenses>.
|
||||
|
||||
use Modern::Perl;
|
||||
|
||||
use Test::More tests => 14;
|
||||
use Test::MockModule;
|
||||
use t::lib::TestBuilder;
|
||||
|
||||
use C4::Context;
|
||||
use C4::Circulation;
|
||||
|
@ -12,41 +29,42 @@ use C4::Members;
|
|||
|
||||
use Koha::Database;
|
||||
|
||||
my $dbh = C4::Context->dbh;
|
||||
my $schema = Koha::Database->new()->schema();
|
||||
my $schema = Koha::Database->new()->schema();
|
||||
my $dbh = $schema->storage->dbh;
|
||||
my $builder = t::lib::TestBuilder->new();
|
||||
|
||||
# Start transaction
|
||||
$dbh->{RaiseError} = 1;
|
||||
$schema->storage->txn_begin();
|
||||
|
||||
$dbh->do(q{INSERT INTO itemtypes (itemtype) VALUES ('GTI_I_TEST')});
|
||||
$schema->resultset('Category')->create({ categorycode => 'GTI_C_TEST' });
|
||||
$schema->resultset('Branch')->create({ branchcode => 'GTI_B_1', branchname => 'GTI_B_1' });
|
||||
$schema->resultset('Branch')->create({ branchcode => 'GTI_B_2', branchname => 'GTI_B_2' });
|
||||
my $itemtype = $builder->build({ source => 'Itemtype' })->{ itemtype };
|
||||
my $category = $builder->build({ source => 'Category' })->{ categorycode };
|
||||
my $branch_1 = $builder->build({ source => 'Branch' });
|
||||
my $branch_2 = $builder->build({ source => 'Branch' });
|
||||
|
||||
my $c4_context = Test::MockModule->new('C4::Context');
|
||||
$c4_context->mock('userenv', sub {
|
||||
{ branch => 'GTI_B_1' }
|
||||
{ branch => $branch_1->{ branchcode } }
|
||||
});
|
||||
C4::Context->set_preference('item-level_itypes', '0');
|
||||
|
||||
my $biblionumber = create_biblio('Test 1', 'GTI_I_TEST');
|
||||
my $biblionumber = create_biblio('Test 1', $itemtype);
|
||||
AddItem({
|
||||
barcode => 'GTI_BARCODE_001',
|
||||
homebranch => 'GTI_B_1',
|
||||
homebranch => $branch_1->{ branchcode },
|
||||
ccode => 'GTI_CCODE',
|
||||
}, $biblionumber);
|
||||
|
||||
$biblionumber = create_biblio('Test 2', 'GTI_I_TEST');
|
||||
$biblionumber = create_biblio('Test 2', $itemtype);
|
||||
AddItem({
|
||||
barcode => 'GTI_BARCODE_002',
|
||||
homebranch => 'GTI_B_2',
|
||||
homebranch => $branch_2->{ branchcode },
|
||||
}, $biblionumber);
|
||||
|
||||
my $borrowernumber = AddMember(
|
||||
userid => 'gti.test',
|
||||
categorycode => 'GTI_C_TEST',
|
||||
branchcode => 'GTI_B_1'
|
||||
categorycode => $category,
|
||||
branchcode => $branch_1->{ branchcode }
|
||||
);
|
||||
my $borrower = GetMember(borrowernumber => $borrowernumber);
|
||||
|
||||
|
@ -57,16 +75,16 @@ AddIssue($borrower, 'GTI_BARCODE_002');
|
|||
# Start of tests
|
||||
#
|
||||
|
||||
my @issues = GetTopIssues({count => 10, itemtype => 'GTI_I_TEST'});
|
||||
my @issues = GetTopIssues({count => 10, itemtype => $itemtype});
|
||||
is(scalar @issues, 2);
|
||||
is($issues[0]->{title}, 'Test 1');
|
||||
is($issues[1]->{title}, 'Test 2');
|
||||
|
||||
@issues = GetTopIssues({count => 1, itemtype => 'GTI_I_TEST'});
|
||||
@issues = GetTopIssues({count => 1, itemtype => $itemtype});
|
||||
is(scalar @issues, 1);
|
||||
is($issues[0]->{title}, 'Test 1');
|
||||
|
||||
@issues = GetTopIssues({count => 10, branch => 'GTI_B_2'});
|
||||
@issues = GetTopIssues({count => 10, branch => $branch_2->{ branchcode }});
|
||||
is(scalar @issues, 1);
|
||||
is($issues[0]->{title}, 'Test 2');
|
||||
|
||||
|
@ -74,7 +92,7 @@ is($issues[0]->{title}, 'Test 2');
|
|||
is(scalar @issues, 1);
|
||||
is($issues[0]->{title}, 'Test 1');
|
||||
|
||||
@issues = GetTopIssues({count => 10, itemtype => 'GTI_I_TEST', newness => 1});
|
||||
@issues = GetTopIssues({count => 10, itemtype => $itemtype, newness => 1});
|
||||
is(scalar @issues, 2);
|
||||
is($issues[0]->{title}, 'Test 1');
|
||||
is($issues[1]->{title}, 'Test 2');
|
||||
|
@ -85,7 +103,7 @@ $dbh->do(q{
|
|||
WHERE biblionumber = ?
|
||||
}, undef, $biblionumber);
|
||||
|
||||
@issues = GetTopIssues({count => 10, itemtype => 'GTI_I_TEST', newness => 1});
|
||||
@issues = GetTopIssues({count => 10, itemtype => $itemtype, newness => 1});
|
||||
is(scalar @issues, 1);
|
||||
is($issues[0]->{title}, 'Test 1');
|
||||
|
||||
|
|
Loading…
Reference in a new issue