@@ -, +, @@ warnings - Run $ prove t/db_dependent/Circulation/GetIssues.t - Apply the patch - Run: $ prove t/db_dependent/Circulation/GetIssues.t - Sign off :-D --- t/db_dependent/Circulation/GetIssues.t | 80 ++++++++++++++++++-------------- 1 file changed, 46 insertions(+), 34 deletions(-) --- a/t/db_dependent/Circulation/GetIssues.t +++ a/t/db_dependent/Circulation/GetIssues.t @@ -1,60 +1,68 @@ #!/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 . + use Modern::Perl; use Test::More tests => 10; use Test::MockModule; +use t::lib::TestBuilder; + use C4::Biblio; +use C4::Circulation; use C4::Items; use C4::Members; -use C4::Circulation; + use Koha::Library; use Koha::Libraries; use Koha::Patron::Categories; + use MARC::Record; +my $schema = Koha::Database->schema; +$schema->storage->txn_begin; + +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; -$dbh->{AutoCommit} = 0; -$dbh->{RaiseError} = 1; $dbh->do(q|DELETE FROM issues|); -my $branchcode; -my $branch_created; -my @libraries = Koha::Libraries->search; -if (@libraries) { - $branchcode = $libraries[0]->branchcode; -} else { - $branchcode = 'B'; - Koha::Library->new({ branchcode => $branchcode, branchname => 'Branch' })->store; - $branch_created = 1; -} - -my %item_branch_infos = ( - homebranch => $branchcode, +my $branchcode = $builder->build({ source => 'Branch' })->{ branchcode }; +my $itemtype = $builder->build({ source => 'Itemtype' })->{ itemtype }; + +my %item_infos = ( + homebranch => $branchcode, holdingbranch => $branchcode, + itype => $itemtype ); my ($biblionumber1) = AddBiblio(MARC::Record->new, ''); -my $itemnumber1 = AddItem({ barcode => '0101', %item_branch_infos }, $biblionumber1); -my $itemnumber2 = AddItem({ barcode => '0102', %item_branch_infos }, $biblionumber1); +my $itemnumber1 = AddItem({ barcode => '0101', %item_infos }, $biblionumber1); +my $itemnumber2 = AddItem({ barcode => '0102', %item_infos }, $biblionumber1); my ($biblionumber2) = AddBiblio(MARC::Record->new, ''); -my $itemnumber3 = AddItem({ barcode => '0203', %item_branch_infos }, $biblionumber2); - -my $categorycode; -my $category_created; -my @categories = Koha::Patron::Categories->search_limited; -if (@categories) { - $categorycode = $categories[0]->categorycode -} else { - $categorycode = 'C'; - C4::Context->dbh->do( - "INSERT INTO categories(categorycode) VALUES(?)", undef, $categorycode); - $category_created = 1; -} - -my $borrowernumber = AddMember(categorycode => $categorycode, branchcode => $branchcode); +my $itemnumber3 = AddItem({ barcode => '0203', %item_infos }, $biblionumber2); + +my $categorycode = $builder->build({ source => 'Category' })->{ categorycode }; +my $borrowernumber = $builder->build( + { source => 'Borrower', + value => { categorycode => $categorycode, branchcode => $branchcode } + } +)->{borrowernumber}; + my $borrower = GetMember(borrowernumber => $borrowernumber); # Need to mock userenv for AddIssue @@ -88,7 +96,11 @@ is(scalar @$issues, 0, "No one has issued the second item of biblio $biblionumbe my $onsite_checkouts = GetPendingOnSiteCheckouts; is( scalar @$onsite_checkouts, 0, "No pending on-site checkouts" ); -my $itemnumber4 = AddItem({ barcode => '0104', %item_branch_infos }, $biblionumber1); +my $itemnumber4 = AddItem({ barcode => '0104', %item_infos }, $biblionumber1); AddIssue( $borrower, '0104', undef, undef, undef, undef, { onsite_checkout => 1 } ); $onsite_checkouts = GetPendingOnSiteCheckouts; is( scalar @$onsite_checkouts, 1, "There is 1 pending on-site checkout" ); + +$schema->storage->txn_rollback; + +1; --