From 77cd54c5223708fd1d446ed36b7e5cb0ba23f6e1 Mon Sep 17 00:00:00 2001 From: Jonathan Druart Date: Tue, 22 Sep 2015 17:34:16 +0100 Subject: [PATCH] Bug 14878: Tests - Create the branchcodes when needed Tests assume that the branchcodes CPL/MPL/etc. already exist in the DB. If they need them, they should create them. Test plan: Execute the differente test files on a DB without any branchcode or at least without CPL/MPL branches. Confirm that the tests pass. Note for QA: - Not to conflict the list rewrite, this patch don't update VirtualShelves* files. - I am not sure about the changes in t/db_dependent/HoldsQueue.t: +is( $holds_queue->[0]->{cardnumber}, $borrower2->{cardnumber}, "Holds queue filling 1st correct hold for default holds policy 'from home library'"); +is( $holds_queue->[1]->{cardnumber}, $borrower1->{cardnumber}, "Holds queue filling 2nd correct hold for default holds policy 'from home library'"); I have swapped borrower1/borrower2 to make the tests pass, but I didn't understand why... --- t/db_dependent/Accounts.t | 13 +- t/db_dependent/Acquisition/OrderUsers.t | 14 +- t/db_dependent/Borrower_Debarments.t | 12 +- t/db_dependent/Borrower_Discharge.t | 14 +- t/db_dependent/Borrower_Files.t | 12 +- t/db_dependent/Budgets.t | 17 ++- t/db_dependent/Circulation.t | 55 ++++--- t/db_dependent/Circulation/IsItemIssued.t | 18 ++- .../Circulation/IssuingRules/maxsuspensiondays.t | 11 +- t/db_dependent/Circulation/Returns.t | 18 ++- t/db_dependent/Circulation_transfers.t | 53 ++----- t/db_dependent/CourseReserves.t | 16 +- t/db_dependent/Creators/Lib.t | 26 +++- t/db_dependent/Holds.t | 60 ++++---- t/db_dependent/Holds/LocalHoldsPriority.t | 23 ++- t/db_dependent/Holds/RevertWaitingStatus.t | 16 +- t/db_dependent/HoldsQueue.t | 99 ++++++------ t/db_dependent/Items.t | 167 ++++++++++----------- t/db_dependent/Items_DelItem.t | 12 +- t/db_dependent/Koha_template_plugin_Branches.t | 14 +- t/db_dependent/Languages.t | 1 + t/db_dependent/Letters.t | 37 ++--- t/db_dependent/Members.t | 27 ++-- t/db_dependent/Members/AddEnrolmentFeeIfNeeded.t | 12 +- t/db_dependent/Members_Attributes.t | 11 +- t/db_dependent/Ratings.t | 12 +- t/db_dependent/Reserves/GetReserveFee.t | 9 +- t/db_dependent/Serials_2.t | 15 +- t/db_dependent/ShelfBrowser.t | 14 +- 29 files changed, 438 insertions(+), 370 deletions(-) diff --git a/t/db_dependent/Accounts.t b/t/db_dependent/Accounts.t index cefbb3b..aad03a4 100644 --- a/t/db_dependent/Accounts.t +++ b/t/db_dependent/Accounts.t @@ -48,16 +48,19 @@ can_ok( 'C4::Accounts', ); my $builder = t::lib::TestBuilder->new(); -my $schema = Koha::Database->new()->schema(); - my $dbh = C4::Context->dbh; $dbh->{RaiseError}=1; -$dbh->{AutoCommit}=0; +my $schema = Koha::Database->new()->schema(); + +my $library = $builder->build({ + source => 'Branch', +}); + $dbh->do(q|DELETE FROM accountlines|); $dbh->do(q|DELETE FROM issues|); $dbh->do(q|DELETE FROM borrowers|); -my $branchcode = 'CPL'; +my $branchcode = $library->{branchcode}; my $borrower_number; my $context = new Test::MockModule('C4::Context'); @@ -291,6 +294,4 @@ subtest "makepartialpayment() tests" => sub { } }; -$dbh->rollback; - 1; diff --git a/t/db_dependent/Acquisition/OrderUsers.t b/t/db_dependent/Acquisition/OrderUsers.t index 02bb815..ea4d9f9 100644 --- a/t/db_dependent/Acquisition/OrderUsers.t +++ b/t/db_dependent/Acquisition/OrderUsers.t @@ -8,11 +8,19 @@ use C4::Letters; use Koha::Database; use Koha::Acquisition::Order; +use t::lib::TestBuilder; + +my $builder = t::lib::TestBuilder->new; + my $schema = Koha::Database->new()->schema(); -$schema->storage->txn_begin(); + my $dbh = C4::Context->dbh; $dbh->{RaiseError} = 1; +my $library = $builder->build({ + source => "Branch", +}); + # Creating some orders my $booksellerid = C4::Bookseller::AddBookseller( { @@ -65,7 +73,7 @@ my $borrowernumber = C4::Members::AddMember( firstname => 'TESTFN', surname => 'TESTSN', categorycode => 'S', - branchcode => 'CPL', + branchcode => $library->{branchcode}, dateofbirth => '', dateexpiry => '9999-12-31', userid => 'TESTUSERID' @@ -109,5 +117,3 @@ ModReceiveOrder( $messages = C4::Letters::GetQueuedMessages({ borrowernumber => $borrowernumber }); is( scalar( @$messages ), 1, 'The letter has been sent to message queue on receiving the order'); - -$schema->storage->txn_rollback(); diff --git a/t/db_dependent/Borrower_Debarments.t b/t/db_dependent/Borrower_Debarments.t index 1c1d9bf..6f4922b 100755 --- a/t/db_dependent/Borrower_Debarments.t +++ b/t/db_dependent/Borrower_Debarments.t @@ -5,19 +5,25 @@ use Modern::Perl; use C4::Context; use C4::Members; +use t::lib::TestBuilder; + use Test::More tests => 31; use_ok('Koha::Borrower::Debarments'); +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; -$dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; +my $library = $builder->build({ + source => 'Branch', +}); + my $borrowernumber = AddMember( firstname => 'my firstname', surname => 'my surname', categorycode => 'S', - branchcode => 'CPL', + branchcode => $library->{branchcode}, ); my $success = AddDebarment({ @@ -153,5 +159,3 @@ is( IsDebarred( $borrowernumber ), undef, 'A patron without a debarred date is n $dbh->do(q|UPDATE borrowers SET debarred = '9999-12-31'|); # Note: Change this test before the first of January 10000! is( IsDebarred( $borrowernumber ), '9999-12-31', 'A patron with a debarred date in the future is debarred' ); - -$dbh->rollback; diff --git a/t/db_dependent/Borrower_Discharge.t b/t/db_dependent/Borrower_Discharge.t index b585db2..872dea1 100644 --- a/t/db_dependent/Borrower_Discharge.t +++ b/t/db_dependent/Borrower_Discharge.t @@ -13,28 +13,34 @@ use C4::Members qw( AddMember GetMember ); use Koha::Borrower::Discharge; +use t::lib::TestBuilder; + +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; -$dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; $dbh->do(q|DELETE FROM discharges|); +my $library = $builder->build({ + source => 'Branch', +}); + C4::Context->_new_userenv('xxx'); -C4::Context->set_userenv(0, 0, 0, 'firstname', 'surname', 'CPL', 'CPL', '', '', '', '', ''); +C4::Context->set_userenv(0, 0, 0, 'firstname', 'surname', $library->{branchcode}, $library->{branchcode}, '', '', '', '', ''); my $borrowernumber = AddMember( cardnumber => 'UTCARD1', firstname => 'my firstname', surname => 'my surname', categorycode => 'S', - branchcode => 'CPL', + branchcode => $library->{branchcode}, ); my $borrower = GetMember( borrowernumber => $borrowernumber ); # Discharge not possible with issues my ( $biblionumber ) = AddBiblio( MARC::Record->new, ''); my $barcode = 'BARCODE42'; -my ( undef, undef, $itemnumber ) = AddItem({ homebranch => 'CPL', holdingbranch => 'CPL', barcode => $barcode }, $biblionumber); +my ( undef, undef, $itemnumber ) = AddItem({ homebranch => $library->{branchcode}, holdingbranch => $library->{branchcode}, barcode => $barcode }, $biblionumber); AddIssue( $borrower, $barcode ); is( Koha::Borrower::Discharge::can_be_discharged({ borrowernumber => $borrowernumber }), 0, 'A patron with issues cannot be discharged' ); diff --git a/t/db_dependent/Borrower_Files.t b/t/db_dependent/Borrower_Files.t index 281cefd..d8449fc 100644 --- a/t/db_dependent/Borrower_Files.t +++ b/t/db_dependent/Borrower_Files.t @@ -22,23 +22,29 @@ use Modern::Perl; use C4::Context; use C4::Members; +use t::lib::TestBuilder; + use Test::More tests => 23; use_ok('Koha::Borrower::Files'); +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; -$dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; $dbh->do(q|DELETE FROM issues|); $dbh->do(q|DELETE FROM borrowers|); $dbh->do(q|DELETE FROM borrower_files|); +my $library = $builder->build({ + source => 'Branch', +}); + my $borrowernumber = AddMember( firstname => 'my firstname', surname => 'my surname', categorycode => 'S', - branchcode => 'CPL', + branchcode => $library->{branchcode}, ); my $bf = Koha::Borrower::Files->new( @@ -118,5 +124,3 @@ $bf->DelFile( ); $files = $bf->GetFilesInfo(); is( @$files, 0, 'DelFile delete a file' ); - -$dbh->rollback; diff --git a/t/db_dependent/Budgets.t b/t/db_dependent/Budgets.t index 4e51ecd..2bd14c4 100755 --- a/t/db_dependent/Budgets.t +++ b/t/db_dependent/Budgets.t @@ -12,23 +12,26 @@ use C4::Dates; use C4::Members qw( AddMember ); use Koha::Acquisition::Order; -use Koha::Database; + +use t::lib::TestBuilder; use YAML; +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; -my $database = Koha::Database->new(); -my $schema = $database->schema(); -$schema->storage->txn_begin(); $dbh->{RaiseError} = 1; $dbh->do(q|DELETE FROM aqbudgetperiods|); $dbh->do(q|DELETE FROM aqbudgets|); +my $library = $builder->build({ + source => 'Branch', +}); + # Mock userenv local $SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /redefined/ }; my $userenv; *C4::Context::userenv = \&Mock_userenv; -$userenv = { flags => 1, id => 'my_userid', branch => 'CPL' }; +$userenv = { flags => 1, id => 'my_userid', branch => $library->{branchcode} }; # # Budget Periods : @@ -531,7 +534,7 @@ for my $new_budget ( @new_budgets ) { # Test SetOwnerToFundHierarchy my $categorycode = 'S'; -my $branchcode = 'CPL'; +my $branchcode = $library->{branchcode}; my $john_doe = C4::Members::AddMember( cardnumber => '123456', firstname => 'John', @@ -582,8 +585,6 @@ is( C4::Budgets::GetBudget($budget_id2)->{budget_owner_id}, is( C4::Budgets::GetBudget($budget_id21)->{budget_owner_id}, undef, "SetOwnerToFundHierarchy should have set John Doe $john_doe for budget 21 ($budget_id21)" ); -$schema->storage->txn_rollback(); - sub _get_dependencies { my ($budget_hierarchy) = @_; my $graph; diff --git a/t/db_dependent/Circulation.t b/t/db_dependent/Circulation.t index f4910ef..cfb8ea8 100755 --- a/t/db_dependent/Circulation.t +++ b/t/db_dependent/Circulation.t @@ -27,32 +27,40 @@ use C4::Overdues qw(UpdateFine); use Koha::DateUtils; use Koha::Database; +use t::lib::TestBuilder; + use Test::More tests => 69; BEGIN { use_ok('C4::Circulation'); } +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; -my $schema = Koha::Database->new()->schema(); # Start transaction $dbh->{RaiseError} = 1; -$schema->storage->txn_begin(); # Start with a clean slate $dbh->do('DELETE FROM issues'); +my $library = $builder->build({ + source => 'Branch', +}); +my $library2 = $builder->build({ + source => 'Branch', +}); + my $CircControl = C4::Context->preference('CircControl'); my $HomeOrHoldingBranch = C4::Context->preference('HomeOrHoldingBranch'); my $item = { - homebranch => 'MPL', - holdingbranch => 'MPL' + homebranch => $library2->{branchcode}, + holdingbranch => $library2->{branchcode} }; my $borrower = { - branchcode => 'MPL' + branchcode => $library2->{branchcode} }; # No userenv, PickupLibrary @@ -96,8 +104,8 @@ is( # Now, set a userenv C4::Context->_new_userenv('xxx'); -C4::Context->set_userenv(0,0,0,'firstname','surname', 'MPL', 'Midway Public Library', '', '', ''); -is(C4::Context->userenv->{branch}, 'MPL', 'userenv set'); +C4::Context->set_userenv(0,0,0,'firstname','surname', $library2->{branchcode}, 'Midway Public Library', '', '', ''); +is(C4::Context->userenv->{branch}, $library2->{branchcode}, 'userenv set'); # Userenv set, PickupLibrary C4::Context->set_preference('CircControl', 'PickupLibrary'); @@ -108,7 +116,7 @@ is( ); is( C4::Circulation::_GetCircControlBranch($item, $borrower), - 'MPL', + $library2->{branchcode}, '_GetCircControlBranch returned current branch' ); @@ -174,7 +182,7 @@ my $sth = C4::Context->dbh->prepare("SELECT COUNT(*) FROM accountlines WHERE amo $sth->execute(); my ( $original_count ) = $sth->fetchrow_array(); -C4::Context->dbh->do("INSERT INTO borrowers ( cardnumber, surname, firstname, categorycode, branchcode ) VALUES ( '99999999999', 'Hall', 'Kyle', 'S', 'MPL' )"); +C4::Context->dbh->do("INSERT INTO borrowers ( cardnumber, surname, firstname, categorycode, branchcode ) VALUES ( '99999999999', 'Hall', 'Kyle', 'S', ? )", undef, $library2->{branchcode} ); C4::Circulation::ProcessOfflinePayment({ cardnumber => '99999999999', amount => '123.45' }); @@ -200,7 +208,7 @@ C4::Context->dbh->do("DELETE FROM accountlines"); my ($biblionumber, $biblioitemnumber) = AddBiblio($biblio, ''); my $barcode = 'R00000342'; - my $branch = 'MPL'; + my $branch = $library2->{branchcode}; my ( $item_bibnum, $item_bibitemnum, $itemnumber ) = AddItem( { @@ -433,7 +441,7 @@ C4::Context->dbh->do("DELETE FROM accountlines"); LostItem( $itemnumber, 1 ); - my $item = $schema->resultset('Item')->find( $itemnumber ); + my $item = Koha::Database->new()->schema()->resultset('Item')->find($itemnumber); ok( !$item->onloan(), "Lost item marked as returned has false onloan value" ); my $total_due = $dbh->selectrow_array( @@ -453,7 +461,7 @@ C4::Context->dbh->do("DELETE FROM accountlines"); LostItem( $itemnumber2, 0 ); - my $item2 = $schema->resultset('Item')->find( $itemnumber2 ); + my $item2 = Koha::Database->new()->schema()->resultset('Item')->find($itemnumber2); ok( $item2->onloan(), "Lost item *not* marked as returned has true onloan value" ); $total_due = $dbh->selectrow_array( @@ -466,7 +474,7 @@ C4::Context->dbh->do("DELETE FROM accountlines"); my $now = dt_from_string(); my $future = dt_from_string(); $future->add( days => 7 ); - my $units = C4::Overdues::get_chargeable_units('days', $future, $now, 'MPL'); + my $units = C4::Overdues::get_chargeable_units('days', $future, $now, $library2->{branchcode}); ok( $units == 0, '_get_chargeable_units returns 0 for items not past due date (Bug 12596)' ); } @@ -475,7 +483,7 @@ C4::Context->dbh->do("DELETE FROM accountlines"); my $barcode = 'R00000342'; my $barcode2 = 'R00000343'; my $barcode3 = 'R00000344'; - my $branch = 'MPL'; + my $branch = $library2->{branchcode}; #Create another record my $biblio2 = MARC::Record->new(); @@ -560,7 +568,7 @@ C4::Context->dbh->do("DELETE FROM accountlines"); { my $barcode = '1234567890'; - my $branch = 'MPL'; + my $branch = $library2->{branchcode}; my $biblio = MARC::Record->new(); my ($biblionumber, $biblioitemnumber) = AddBiblio($biblio, ''); @@ -615,8 +623,8 @@ C4::Context->dbh->do("DELETE FROM accountlines"); my $barcode1 = '1234'; my ( undef, undef, $itemnumber1 ) = AddItem( { - homebranch => 'MPL', - holdingbranch => 'MPL', + homebranch => $library2->{branchcode}, + holdingbranch => $library2->{branchcode}, barcode => $barcode1, }, $biblionumber @@ -624,8 +632,8 @@ C4::Context->dbh->do("DELETE FROM accountlines"); my $barcode2 = '4321'; my ( undef, undef, $itemnumber2 ) = AddItem( { - homebranch => 'MPL', - holdingbranch => 'MPL', + homebranch => $library2->{branchcode}, + holdingbranch => $library2->{branchcode}, barcode => $barcode2, }, $biblionumber @@ -635,13 +643,13 @@ C4::Context->dbh->do("DELETE FROM accountlines"); firstname => 'Kyle', surname => 'Hall', categorycode => 'S', - branchcode => 'MPL', + branchcode => $library2->{branchcode}, ); my $borrowernumber2 = AddMember( firstname => 'Chelsea', surname => 'Hall', categorycode => 'S', - branchcode => 'MPL', + branchcode => $library2->{branchcode}, ); my $borrower1 = GetMember( borrowernumber => $borrowernumber1 ); @@ -653,7 +661,7 @@ C4::Context->dbh->do("DELETE FROM accountlines"); is( $renewokay, 1, 'Bug 14337 - Verify the borrower can renew with no hold on the record' ); AddReserve( - 'MPL', $borrowernumber2, $biblionumber, + $library2->{branchcode}, $borrowernumber2, $biblionumber, '', 1, undef, undef, '', undef, undef, undef ); @@ -688,7 +696,7 @@ C4::Context->dbh->do("DELETE FROM accountlines"); { # Don't allow renewing onsite checkout my $barcode = 'R00000XXX'; - my $branch = 'CPL'; + my $branch = $library->{branchcode}; #Create another record my $biblio = MARC::Record->new(); @@ -721,5 +729,4 @@ C4::Context->dbh->do("DELETE FROM accountlines"); is( $error, 'onsite_checkout', 'A correct error code should be returned by CanBookBeRenewed for on-site checkout' ); } -$schema->storage->txn_rollback(); 1; diff --git a/t/db_dependent/Circulation/IsItemIssued.t b/t/db_dependent/Circulation/IsItemIssued.t index 18ea984..a34a073 100644 --- a/t/db_dependent/Circulation/IsItemIssued.t +++ b/t/db_dependent/Circulation/IsItemIssued.t @@ -7,19 +7,25 @@ use C4::Items; use C4::Members; use Koha::DateUtils; +use t::lib::TestBuilder; + use MARC::Record; *C4::Context::userenv = \&Mock_userenv; +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; -$dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; +my $library = $builder->build({ + source => 'Branch', +}); + my $borrowernumber = AddMember( firstname => 'my firstname', surname => 'my surname', categorycode => 'S', - branchcode => 'CPL', + branchcode => $library->{branchcode}, ); @@ -27,7 +33,7 @@ my $borrower = GetMember( borrowernumber => $borrowernumber ); my $record = MARC::Record->new(); my ( $biblionumber, $biblioitemnumber ) = AddBiblio( $record, '' ); -my ( undef, undef, $itemnumber ) = AddItem( { homebranch => 'CPL', holdingbranch => 'CPL', barcode => 'i_dont_exist' }, $biblionumber ); +my ( undef, undef, $itemnumber ) = AddItem( { homebranch => $library->{branchcode}, holdingbranch => $library->{branchcode}, barcode => 'i_dont_exist' }, $biblionumber ); my $item = GetItem( $itemnumber ); is ( IsItemIssued( $item->{itemnumber} ), 0, "item is not on loan at first" ); @@ -41,7 +47,7 @@ is( 'item that is on loan cannot be deleted', ); -AddReturn('i_dont_exist', 'CPL'); +AddReturn('i_dont_exist', $library->{branchcode}); is ( IsItemIssued( $item->{itemnumber} ), 0, "item has been returned" ); is( @@ -50,9 +56,7 @@ is( 'item that is not on loan can be deleted', ); -$dbh->rollback; - # C4::Context->userenv sub Mock_userenv { - return { branch => 'CPL' }; + return { branch => $library->{branchcode} }; } diff --git a/t/db_dependent/Circulation/IssuingRules/maxsuspensiondays.t b/t/db_dependent/Circulation/IssuingRules/maxsuspensiondays.t index d2cf9c4..c2a21b4 100644 --- a/t/db_dependent/Circulation/IssuingRules/maxsuspensiondays.t +++ b/t/db_dependent/Circulation/IssuingRules/maxsuspensiondays.t @@ -12,11 +12,18 @@ use C4::Items qw( AddItem ); use C4::Members qw( AddMember GetMember ); use Koha::DateUtils; use Koha::Borrower::Debarments qw( GetDebarments DelDebarment ); + +use t::lib::TestBuilder; + +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; $dbh->{RaiseError} = 1; -$dbh->{AutoCommit} = 0; -my $branchcode = 'CPL'; +my $library = $builder->build({ + source => 'Branch', +}); + +my $branchcode = $library->{branchcode}; local $SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /redefined/ }; my $userenv->{branch} = $branchcode; *C4::Context::userenv = \&Mock_userenv; diff --git a/t/db_dependent/Circulation/Returns.t b/t/db_dependent/Circulation/Returns.t index e8545d1..2dfd364 100644 --- a/t/db_dependent/Circulation/Returns.t +++ b/t/db_dependent/Circulation/Returns.t @@ -7,21 +7,27 @@ use C4::Items; use C4::Members; use Koha::DateUtils; +use t::lib::TestBuilder; + use MARC::Record; *C4::Context::userenv = \&Mock_userenv; +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; -$dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; +my $library = $builder->build({ + source => 'Branch', +}); + my $record = MARC::Record->new(); my ( $biblionumber, $biblioitemnumber ) = AddBiblio( $record, '' ); my ( undef, undef, $itemnumber ) = AddItem( { - homebranch => 'CPL', - holdingbranch => 'CPL', + homebranch => $library->{branchcode}, + holdingbranch => $library->{branchcode}, barcode => 'i_dont_exist', location => 'PROC', permanent_location => 'TEST' @@ -32,7 +38,7 @@ my ( undef, undef, $itemnumber ) = AddItem( my $item; C4::Context->set_preference( "InProcessingToShelvingCart", 1 ); -AddReturn( 'i_dont_exist', 'CPL' ); +AddReturn( 'i_dont_exist', $library->{branchcode} ); $item = GetItem($itemnumber); is( $item->{location}, 'CART', "InProcessingToShelvingCart functions as intended" ); @@ -40,11 +46,11 @@ $item->{location} = 'PROC'; ModItem( $item, undef, $itemnumber ); C4::Context->set_preference( "InProcessingToShelvingCart", 0 ); -AddReturn( 'i_dont_exist', 'CPL' ); +AddReturn( 'i_dont_exist', $library->{branchcode} ); $item = GetItem($itemnumber); is( $item->{location}, 'TEST', "InProcessingToShelvingCart functions as intended" ); # C4::Context->userenv sub Mock_userenv { - return { branch => 'CPL' }; + return { branch => $library->{branchcode} }; } diff --git a/t/db_dependent/Circulation_transfers.t b/t/db_dependent/Circulation_transfers.t index 0c92222..89937b7 100644 --- a/t/db_dependent/Circulation_transfers.t +++ b/t/db_dependent/Circulation_transfers.t @@ -9,6 +9,8 @@ use C4::Circulation; use Koha::DateUtils; use DateTime::Duration; +use t::lib::TestBuilder; + use Test::More tests => 22; use Test::Deep; @@ -26,10 +28,10 @@ can_ok( ) ); +my $builder = t::lib::TestBuilder->new; #Start transaction my $dbh = C4::Context->dbh; $dbh->{RaiseError} = 1; -$dbh->{AutoCommit} = 0; $dbh->do(q|DELETE FROM issues|); $dbh->do(q|DELETE FROM borrowers|); @@ -40,46 +42,12 @@ $dbh->do(q|DELETE FROM branchtransfers|); #Add sample datas #Add branches -my $samplebranch1 = { - add => 1, - branchcode => 'SAB1', - branchname => 'Sample Branch', - branchaddress1 => 'sample adr1', - branchaddress2 => 'sample adr2', - branchaddress3 => 'sample adr3', - branchzip => 'sample zip', - branchcity => 'sample city', - branchstate => 'sample state', - branchcountry => 'sample country', - branchphone => 'sample phone', - branchfax => 'sample fax', - branchemail => 'sample email', - branchurl => 'sample url', - branchip => 'sample ip', - branchprinter => undef, - opac_info => 'sample opac', -}; -my $samplebranch2 = { - add => 1, - branchcode => 'SAB2', - branchname => 'Sample Branch2', - branchaddress1 => 'sample adr1_2', - branchaddress2 => 'sample adr2_2', - branchaddress3 => 'sample adr3_2', - branchzip => 'sample zip2', - branchcity => 'sample city2', - branchstate => 'sample state2', - branchcountry => 'sample country2', - branchphone => 'sample phone2', - branchfax => 'sample fax2', - branchemail => 'sample email2', - branchurl => 'sample url2', - branchip => 'sample ip2', - branchprinter => undef, - opac_info => 'sample opac2', -}; -ModBranch($samplebranch1); -ModBranch($samplebranch2); +my $samplebranch1 = $builder->build({ + source => 'Branch', +}); +my $samplebranch2 = $builder->build({ + source => 'Branch', +}); #Add biblio and items my $record = MARC::Record->new(); @@ -208,6 +176,3 @@ cmp_deeply( C4::Circulation::TransferSlip($samplebranch1->{branchcode}, undef, 1, $samplebranch2->{branchcode}), "Barcode and itemnumber for same item both generate same TransferSlip" ); - -#End transaction -$dbh->rollback; diff --git a/t/db_dependent/CourseReserves.t b/t/db_dependent/CourseReserves.t index ddb6ad9..fdfc478 100755 --- a/t/db_dependent/CourseReserves.t +++ b/t/db_dependent/CourseReserves.t @@ -7,6 +7,8 @@ use Modern::Perl; use Test::More tests => 21; +use t::lib::TestBuilder; + BEGIN { use_ok('C4::Biblio'); use_ok('C4::Context'); @@ -16,12 +18,14 @@ BEGIN { use_ok('MARC::Record'); } +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; - -# Start transaction -$dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; +my $library = $builder->build({ + source => 'Branch', +}); + my $sth = $dbh->prepare("SELECT * FROM borrowers ORDER BY RAND() LIMIT 10"); $sth->execute(); my @borrowers = @{ $sth->fetchall_arrayref( {} ) }; @@ -29,10 +33,10 @@ my @borrowers = @{ $sth->fetchall_arrayref( {} ) }; # Create the item my $record = MARC::Record->new(); $record->append_fields( - MARC::Field->new( '952', '0', '0', a => 'CPL', b => 'CPL' ) + MARC::Field->new( '952', '0', '0', a => $library->{branchcode}, b => $library->{branchcode} ) ); my ( $biblionumber, $biblioitemnumber ) = C4::Biblio::AddBiblio($record, ''); -my @iteminfo = C4::Items::AddItem( { homebranch => 'CPL', holdingbranch => 'CPL' }, $biblionumber ); +my @iteminfo = C4::Items::AddItem( { homebranch => $library->{branchcode}, holdingbranch => $library->{branchcode} }, $biblionumber ); my $itemnumber = $iteminfo[2]; my $course_id = ModCourse( @@ -90,5 +94,3 @@ ok( !defined( $course_reserve->{'cr_id'} ), "DelCourseReserve functions correctl DelCourse($course_id); $course = GetCourse($course_id); ok( !defined( $course->{'course_id'} ), "DelCourse deleted course successfully" ); - -$dbh->rollback; diff --git a/t/db_dependent/Creators/Lib.t b/t/db_dependent/Creators/Lib.t index e0ac3ba..b0dff80 100644 --- a/t/db_dependent/Creators/Lib.t +++ b/t/db_dependent/Creators/Lib.t @@ -21,6 +21,7 @@ use Graphics::Magick; use Test::More tests => 644; use Test::MockModule; use t::lib::Mocks; +use t::lib::TestBuilder; use Test::Warn; BEGIN { @@ -50,9 +51,10 @@ can_ok( html_table ) ); +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; -$dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; + $dbh->do('DELETE FROM issues'); $dbh->do('DELETE FROM creator_templates'); $dbh->do('DELETE FROM creator_layouts'); @@ -67,6 +69,16 @@ $dbh->do('DELETE FROM biblioitems'); # Inserted data ########################################################### +my $library1 = $builder->build({ + source => 'Branch', +}); +my $library2 = $builder->build({ + source => 'Branch', +}); +my $library3 = $builder->build({ + source => 'Branch', +}); + # ---------- Some Templates -------------------- my $query = ' INSERT INTO creator_templates @@ -226,11 +238,11 @@ $query = ' timestamp, branch_code, creator) VALUES (?,?,?,?,?,?)'; $insert_sth = $dbh->prepare($query); -$insert_sth->execute( 11, $item_number1, $borrowernumber1, 'now()', 'CPL', 'Labels' ); +$insert_sth->execute( 11, $item_number1, $borrowernumber1, 'now()', $library1->{branchcode}, 'Labels' ); -$insert_sth->execute( 12, $item_number2, $borrowernumber2, 'now()', 'MPL', 'Labels' ); +$insert_sth->execute( 12, $item_number2, $borrowernumber2, 'now()', $library2->{branchcode}, 'Labels' ); -$insert_sth->execute( 12, $item_number3, $borrowernumber3, 'now()', 'PVL', 'Labels' ); +$insert_sth->execute( 12, $item_number3, $borrowernumber3, 'now()', $library3->{branchcode}, 'Labels' ); ########################################################### # Testing Subs @@ -792,7 +804,7 @@ is( $batches->[1]->{batch_id}, 12, 'batch_id is good' ); is( $batches->[1]->{_item_count}, $count, 'item_number is good for this batch_id' ); # Without filter & creator params ----- -$batches = get_batch_summary( filter => 'branch_code=\'MPL\'', creator => 'Labels' ); +$batches = get_batch_summary( filter => "branch_code='$library1->{branchcode}'", creator => 'Labels' ); is( @$batches, 1, 'There is 1 batch matching' ); $query = ' @@ -802,7 +814,7 @@ $query = ' AND branch_code = ? GROUP BY batch_id '; -my ( $id, $nb ) = $dbh->selectrow_array( $query, {}, 'Labels', 'MPL' ); +my ( $id, $nb ) = $dbh->selectrow_array( $query, {}, 'Labels', $library1->{branchcode} ); is( $batches->[0]->{batch_id}, $id, 'batch_id is good' ); is( $batches->[0]->{_item_count}, $nb, 'item_number is good for this batch_id' ); @@ -1443,5 +1455,3 @@ sub mock_preference { } ); } - -$dbh->rollback; diff --git a/t/db_dependent/Holds.t b/t/db_dependent/Holds.t index 82d6f62..6fabc01 100755 --- a/t/db_dependent/Holds.t +++ b/t/db_dependent/Holds.t @@ -17,16 +17,16 @@ use Koha::Holds; use Koha::DateUtils qw( dt_from_string output_pref ); +use t::lib::TestBuilder; + BEGIN { use FindBin; use lib $FindBin::Bin; use_ok('C4::Reserves'); } +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; - -# Start transaction -$dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; my $borrowers_count = 5; @@ -43,8 +43,15 @@ $insert_sth->execute('ONLY1'); # Create a biblio instance for testing my ($bibnum, $title, $bibitemnum) = create_helper_biblio('DUMMY'); +my $library1 = $builder->build({ + source => 'Branch', +}); +my $library2 = $builder->build({ + source => 'Branch', +}); + # Create item instance for testing. -my ($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => 'CPL', holdingbranch => 'CPL' } , $bibnum); +my ($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => $library1->{branchcode}, holdingbranch => $library1->{branchcode} } , $bibnum); # Create some borrowers my @borrowernumbers; @@ -53,20 +60,17 @@ foreach (1..$borrowers_count) { firstname => 'my firstname', surname => 'my surname ' . $_, categorycode => 'S', - branchcode => 'CPL', + branchcode => $library1->{branchcode}, ); push @borrowernumbers, $borrowernumber; } my $biblionumber = $bibnum; -my @branches = GetBranchesLoop(); -my $branch = $branches[0][0]{value}; - # Create five item level holds foreach my $borrowernumber ( @borrowernumbers ) { AddReserve( - $branch, + $library1->{branchcode}, $borrowernumber, $biblionumber, my $bibitems = q{}, @@ -88,7 +92,7 @@ is( scalar(@$reserves), $borrowers_count, "Test GetReserves()" ); my ( $reservedate, $borrowernumber, $branchcode, $reserve_id ) = GetReservesFromItemnumber($itemnumber); is( $reservedate, output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 }), "GetReservesFromItemnumber should return a valid reserve date"); is( $borrowernumber, $borrowernumbers[0], "GetReservesFromItemnumber should return a valid borrowernumber"); -is( $branchcode, 'CPL', "GetReservesFromItemnumber should return a valid branchcode"); +is( $branchcode, $library1->{branchcode}, "GetReservesFromItemnumber should return a valid branchcode"); ok($reserve_id, "Test GetReservesFromItemnumber()"); my $hold = Koha::Holds->find( $reserve_id ); @@ -122,7 +126,7 @@ is( scalar(@$reserves), $borrowers_count - 1, "Test CancelReserve()" ); ModReserve({ reserve_id => $reserve_id, rank => '4', - branchcode => $branch, + branchcode => $library1->{branchcode}, itemnumber => $itemnumber, suspend_until => C4::Dates->new("2013-01-01","iso")->output(), }); @@ -145,7 +149,7 @@ ok( !$reserve->{'suspend'}, "Test AutoUnsuspendReserves()" ); # Add a new hold for the borrower whose hold we canceled earlier, this time at the bib level AddReserve( - $branch, + $library1->{branchcode}, $borrowernumber, $biblionumber, my $bibitems = q{}, @@ -205,7 +209,7 @@ ok( $reserve->{'priority'} eq '5', "Test AlterPriority(), move to bottom" ); my ($foreign_bibnum, $foreign_title, $foreign_bibitemnum) = create_helper_biblio('DUMMY'); my ($foreign_item_bibnum, $foreign_item_bibitemnum, $foreign_itemnumber) - = AddItem({ homebranch => 'MPL', holdingbranch => 'MPL' } , $foreign_bibnum); + = AddItem({ homebranch => $library2->{branchcode}, holdingbranch => $library2->{branchcode} } , $foreign_bibnum); $dbh->do('DELETE FROM issuingrules'); $dbh->do( q{INSERT INTO issuingrules (categorycode, branchcode, itemtype, reservesallowed) @@ -248,9 +252,9 @@ ok( # Regression test for bug 11336 ($bibnum, $title, $bibitemnum) = create_helper_biblio('DUMMY'); -($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => 'CPL', holdingbranch => 'CPL' } , $bibnum); +($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => $library1->{branchcode}, holdingbranch => $library1->{branchcode} } , $bibnum); AddReserve( - $branch, + $library1->{branchcode}, $borrowernumbers[0], $bibnum, '', @@ -264,9 +268,9 @@ my $reserveid1 = C4::Reserves::GetReserveId( } ); -($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => 'CPL', holdingbranch => 'CPL' } , $bibnum); +($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => $library1->{branchcode}, holdingbranch => $library1->{branchcode} } , $bibnum); AddReserve( - $branch, + $library1->{branchcode}, $borrowernumbers[1], $bibnum, '', @@ -284,9 +288,9 @@ CancelReserve({ reserve_id => $reserveid1 }); $reserve2 = GetReserve( $reserveid2 ); is( $reserve2->{priority}, 1, "After cancelreserve, the 2nd reserve becomes the first on the waiting list" ); -($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => 'CPL', holdingbranch => 'CPL' } , $bibnum); +($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => $library1->{branchcode}, holdingbranch => $library1->{branchcode} } , $bibnum); AddReserve( - $branch, + $library1->{branchcode}, $borrowernumbers[0], $bibnum, '', @@ -316,9 +320,9 @@ ok( !defined( ( CheckReserves($itemnumber) )[1] ), "Hold cannot be trapped for d # Regression test for bug 9532 ($bibnum, $title, $bibitemnum) = create_helper_biblio('CANNOT'); -($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => 'CPL', holdingbranch => 'CPL', itype => 'CANNOT' } , $bibnum); +($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => $library1->{branchcode}, holdingbranch => $library1->{branchcode}, itype => 'CANNOT' } , $bibnum); AddReserve( - $branch, + $library1->{branchcode}, $borrowernumbers[0], $bibnum, '', @@ -358,25 +362,25 @@ $dbh->do('DELETE FROM default_circ_rules'); $dbh->do(q{ INSERT INTO branch_item_rules (branchcode, itemtype, holdallowed, returnbranch) VALUES (?, ?, ?, ?) -}, {}, 'CPL', 'CANNOT', 0, 'homebranch'); +}, {}, $library1->{branchcode}, 'CANNOT', 0, 'homebranch'); $dbh->do(q{ INSERT INTO branch_item_rules (branchcode, itemtype, holdallowed, returnbranch) VALUES (?, ?, ?, ?) -}, {}, 'CPL', 'CAN', 1, 'homebranch'); +}, {}, $library1->{branchcode}, 'CAN', 1, 'homebranch'); ($bibnum, $title, $bibitemnum) = create_helper_biblio('CANNOT'); ($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem( - { homebranch => 'CPL', holdingbranch => 'CPL', itype => 'CANNOT' } , $bibnum); + { homebranch => $library1->{branchcode}, holdingbranch => $library1->{branchcode}, itype => 'CANNOT' } , $bibnum); is(CanItemBeReserved($borrowernumbers[0], $itemnumber), 'notReservable', "CanItemBeReserved should returns 'notReservable'"); ($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem( - { homebranch => 'MPL', holdingbranch => 'CPL', itype => 'CAN' } , $bibnum); + { homebranch => $library2->{branchcode}, holdingbranch => $library1->{branchcode}, itype => 'CAN' } , $bibnum); is(CanItemBeReserved($borrowernumbers[0], $itemnumber), 'cannotReserveFromOtherBranches', "CanItemBeReserved should returns 'cannotReserveFromOtherBranches'"); ($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem( - { homebranch => 'CPL', holdingbranch => 'CPL', itype => 'CAN' } , $bibnum); + { homebranch => $library1->{branchcode}, holdingbranch => $library1->{branchcode}, itype => 'CAN' } , $bibnum); is(CanItemBeReserved($borrowernumbers[0], $itemnumber), 'OK', "CanItemBeReserved should returns 'OK'"); @@ -427,7 +431,7 @@ $dbh->do('DELETE FROM items'); $dbh->do('DELETE FROM biblio'); ( $bibnum, $title, $bibitemnum ) = create_helper_biblio('ONLY1'); -( $item_bibnum, $item_bibitemnum, $itemnumber ) = AddItem( { homebranch => 'CPL', holdingbranch => 'CPL' }, $bibnum ); +( $item_bibnum, $item_bibitemnum, $itemnumber ) = AddItem( { homebranch => $library1->{branchcode}, holdingbranch => $library1->{branchcode} }, $bibnum ); $dbh->do( q{INSERT INTO issuingrules (categorycode, branchcode, itemtype, reservesallowed) @@ -438,7 +442,7 @@ $dbh->do( is( CanItemBeReserved( $borrowernumbers[0], $itemnumber ), 'OK', 'Patron can reserve item with hold limit of 1, no holds placed' ); -my $res_id = AddReserve( $branch, $borrowernumbers[0], $bibnum, '', 1, ); +my $res_id = AddReserve( $library1->{branchcode}, $borrowernumbers[0], $bibnum, '', 1, ); is( CanItemBeReserved( $borrowernumbers[0], $itemnumber ), 'tooManyReserves', 'Patron cannot reserve item with hold limit of 1, 1 bib level hold placed' ); diff --git a/t/db_dependent/Holds/LocalHoldsPriority.t b/t/db_dependent/Holds/LocalHoldsPriority.t index 8bbcdb4..190eaae 100755 --- a/t/db_dependent/Holds/LocalHoldsPriority.t +++ b/t/db_dependent/Holds/LocalHoldsPriority.t @@ -12,27 +12,40 @@ use C4::Biblio; use C4::Items; use C4::Members; +use t::lib::TestBuilder; + BEGIN { use FindBin; use lib $FindBin::Bin; use_ok('C4::Reserves'); } +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; - -# Start transaction -$dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; +my $library1 = $builder->build({ + source => 'Branch', +}); +my $library2 = $builder->build({ + source => 'Branch', +}); +my $library3 = $builder->build({ + source => 'Branch', +}); +my $library4 = $builder->build({ + source => 'Branch', +}); + my $borrowers_count = 5; # Create a helper biblio my ( $bibnum, $title, $bibitemnum ) = create_helper_biblio(); # Create a helper item for the biblio. my ( $item_bibnum, $item_bibitemnum, $itemnumber ) = - AddItem( { homebranch => 'MPL', holdingbranch => 'CPL' }, $bibnum ); + AddItem( { homebranch => $library4->{branchcode}, holdingbranch => $library3->{branchcode} }, $bibnum ); -my @branchcodes = qw{XXX RPL CPL MPL CPL MPL}; +my @branchcodes = ( $library1->{branchcode}, $library2->{branchcode}, $library3->{branchcode}, $library4->{branchcode}, $library3->{branchcode}, $library4->{branchcode} ); # Create some borrowers my @borrowernumbers; diff --git a/t/db_dependent/Holds/RevertWaitingStatus.t b/t/db_dependent/Holds/RevertWaitingStatus.t index a7648fd..645304c 100755 --- a/t/db_dependent/Holds/RevertWaitingStatus.t +++ b/t/db_dependent/Holds/RevertWaitingStatus.t @@ -13,20 +13,24 @@ use C4::Items; use C4::Members; use C4::Reserves; -my $dbh = C4::Context->dbh; +use t::lib::TestBuilder; -# Start transaction -$dbh->{AutoCommit} = 0; +my $builder = t::lib::TestBuilder->new; +my $dbh = C4::Context->dbh; $dbh->{RaiseError} = 1; $dbh->do("DELETE FROM reserves"); $dbh->do("DELETE FROM old_reserves"); +my $library = $builder->build({ + source => 'Branch', +}); + local $SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /redefined/ }; *C4::Context::userenv = \&Mock_userenv; sub Mock_userenv { - my $userenv = { flags => 1, id => '1', branch => 'CPL' }; + my $userenv = { flags => 1, id => '1', branch => $library->{branchcode} }; return $userenv; } @@ -41,7 +45,7 @@ my ( $bibnum, $title, $bibitemnum ) = create_helper_biblio(); diag("Creating item instance for testing."); my $item_barcode = 'my_barcode'; my ( $item_bibnum, $item_bibitemnum, $itemnumber ) = AddItem( - { homebranch => 'CPL', holdingbranch => 'CPL', barcode => $item_barcode }, + { homebranch => $library->{branchcode}, holdingbranch => $library->{branchcode}, barcode => $item_barcode }, $bibnum ); # Create some borrowers @@ -51,7 +55,7 @@ foreach my $i ( 1 .. $borrowers_count ) { firstname => 'my firstname', surname => 'my surname ' . $i, categorycode => 'S', - branchcode => 'CPL', + branchcode => $library->{branchcode}, ); push @borrowernumbers, $borrowernumber; } diff --git a/t/db_dependent/HoldsQueue.t b/t/db_dependent/HoldsQueue.t index 6d997d6..49e06a1 100755 --- a/t/db_dependent/HoldsQueue.t +++ b/t/db_dependent/HoldsQueue.t @@ -14,11 +14,12 @@ use Data::Dumper; use Test::More tests => 21; - use C4::Branch; use C4::ItemType; use C4::Members; +use t::lib::TestBuilder; + BEGIN { use FindBin; use lib $FindBin::Bin; @@ -26,29 +27,37 @@ BEGIN { use_ok('C4::HoldsQueue'); } -# Start transaction +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; -$dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; +$dbh->{AutoCommit} = 0; + +my $library1 = $builder->build({ + source => 'Branch', +}); +my $library2 = $builder->build({ + source => 'Branch', +}); +my $library3 = $builder->build({ + source => 'Branch', +}); my $TITLE = "Test Holds Queue XXX"; -my %data = ( - cardnumber => 'CARDNUMBER42', - firstname => 'my firstname', - surname => 'my surname', - categorycode => 'S', - branchcode => 'CPL', -); +my $borrower = $builder->build({ + source => 'Borrower', + value => { + categorycode => 'S', + branchcode => $library1->{branchcode}, + } +}); -my $borrowernumber = AddMember(%data); -my $borrower = GetMember( borrowernumber => $borrowernumber ); +my $borrowernumber = $borrower->{borrowernumber}; # Set special (for this test) branches my $borrower_branchcode = $borrower->{branchcode}; -my $branches = C4::Branch::GetBranches; -my @other_branches = grep { $_ ne $borrower_branchcode } keys %$branches; -my $least_cost_branch_code = pop @other_branches - or BAIL_OUT("No point testing only one branch..."); +my @branchcodes = ( $library1->{branchcode}, $library2->{branchcode}, $library3->{branchcode} ); +my @other_branches = ( $library2->{branchcode}, $library3->{branchcode} ); +my $least_cost_branch_code = pop @other_branches; my @item_types = C4::ItemType->all; my $itemtype = grep { $_->{notforloan} == 1 } @item_types or BAIL_OUT("No adequate itemtype"); @@ -155,9 +164,6 @@ ok( # XXX All this tests are for borrower branch pick-up. # Maybe needs expanding to homebranch or holdingbranch pick-up. -# Cleanup -$dbh->rollback; - ### Test holds queue builder does not violate holds policy ### # Clear out existing rules relating to holdallowed @@ -167,39 +173,29 @@ $dbh->do("DELETE FROM default_circ_rules"); C4::Context->set_preference('UseTransportCostMatrix', 0); -my @branchcodes = keys %$branches; ( $itemtype ) = @{ $dbh->selectrow_arrayref("SELECT itemtype FROM itemtypes LIMIT 1") }; -my $borrowernumber1 = AddMember( - ( - cardnumber => 'CARDNUMBER1', - firstname => 'Firstname', - surname => 'Surname', +my $borrower1 = $builder->build({ + source => 'Borrower', + value => { categorycode => 'S', - branchcode => $branchcodes[0], - ) -); -my $borrowernumber2 = AddMember( - ( - cardnumber => 'CARDNUMBER2', - firstname => 'Firstname', - surname => 'Surname', + branchcode => $branchcodes[0], + }, +}); +my $borrower2 = $builder->build({ + source => 'Borrower', + value => { categorycode => 'S', - branchcode => $branchcodes[1], - ) -); -my $borrowernumber3 = AddMember( - ( - cardnumber => 'CARDNUMBER3', - firstname => 'Firstname', - surname => 'Surname', + branchcode => $branchcodes[1], + }, +}); +my $borrower3 = $builder->build({ + source => 'Borrower', + value => { categorycode => 'S', - branchcode => $branchcodes[2], - ) -); -my $borrower1 = GetMember( borrowernumber => $borrowernumber1 ); -my $borrower2 = GetMember( borrowernumber => $borrowernumber2 ); -my $borrower3 = GetMember( borrowernumber => $borrowernumber3 ); + branchcode => $branchcodes[2], + }, +}); $dbh->do(qq{ INSERT INTO biblio ( @@ -277,8 +273,6 @@ my $sth = $dbh->prepare(q{ $sth->execute( $borrower1->{borrowernumber}, $biblionumber, $branchcodes[0], 1 ); $sth->execute( $borrower2->{borrowernumber}, $biblionumber, $branchcodes[0], 2 ); $sth->execute( $borrower3->{borrowernumber}, $biblionumber, $branchcodes[0], 3 ); -#warn "RESERVES" . Data::Dumper::Dumper( $dbh->selectall_arrayref("SELECT * FROM reserves", { Slice => {} }) ); -#warn "ITEMS: " . Data::Dumper::Dumper( $dbh->selectall_arrayref("SELECT * FROM items WHERE biblionumber = $biblionumber", { Slice => {} }) ); my $holds_queue; @@ -287,8 +281,8 @@ $dbh->do("INSERT INTO default_circ_rules ( holdallowed ) VALUES ( 1 )"); C4::HoldsQueue::CreateQueue(); $holds_queue = $dbh->selectall_arrayref("SELECT * FROM tmp_holdsqueue", { Slice => {} }); ok( @$holds_queue == 2, "Holds queue filling correct number for default holds policy 'from home library'" ); -ok( $holds_queue->[0]->{cardnumber} eq 'CARDNUMBER1', "Holds queue filling 1st correct hold for default holds policy 'from home library'"); -ok( $holds_queue->[1]->{cardnumber} eq 'CARDNUMBER2', "Holds queue filling 2nd correct hold for default holds policy 'from home library'"); +is( $holds_queue->[0]->{cardnumber}, $borrower2->{cardnumber}, "Holds queue filling 1st correct hold for default holds policy 'from home library'"); +is( $holds_queue->[1]->{cardnumber}, $borrower1->{cardnumber}, "Holds queue filling 2nd correct hold for default holds policy 'from home library'"); $dbh->do("DELETE FROM default_circ_rules"); $dbh->do("INSERT INTO default_circ_rules ( holdallowed ) VALUES ( 2 )"); @@ -297,9 +291,6 @@ $holds_queue = $dbh->selectall_arrayref("SELECT * FROM tmp_holdsqueue", { Slice ok( @$holds_queue == 3, "Holds queue filling correct number for holds for default holds policy 'from any library'" ); #warn "HOLDS QUEUE: " . Data::Dumper::Dumper( $holds_queue ); -# Cleanup -$dbh->rollback; - ### END Test holds queue builder does not violate holds policy ### sub test_queue { diff --git a/t/db_dependent/Items.t b/t/db_dependent/Items.t index f96e4d3..0353b8f 100755 --- a/t/db_dependent/Items.t +++ b/t/db_dependent/Items.t @@ -24,6 +24,7 @@ use C4::Branch; use Koha::Database; use t::lib::Mocks; +use t::lib::TestBuilder; use Test::More tests => 9; @@ -35,24 +36,23 @@ BEGIN { } my $dbh = C4::Context->dbh; -my $branches = GetBranches; -my ($branch1, $branch2) = keys %$branches; my $location = 'My Location'; subtest 'General Add, Get and Del tests' => sub { plan tests => 10; - # Start transaction - $dbh->{AutoCommit} = 0; - $dbh->{RaiseError} = 1; + my $builder = t::lib::TestBuilder->new; + my $library = $builder->build({ + source => 'Branch', + }); # Create a biblio instance for testing C4::Context->set_preference('marcflavour', 'MARC21'); my ($bibnum, $bibitemnum) = get_biblio(); # Add an item. - my ($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => $branch1, holdingbranch => $branch1, location => $location } , $bibnum); + my ($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => $library->{branchcode}, holdingbranch => $library->{branchcode}, location => $location } , $bibnum); cmp_ok($item_bibnum, '==', $bibnum, "New item is linked to correct biblionumber."); cmp_ok($item_bibitemnum, '==', $bibitemnum, "New item is linked to correct biblioitemnumber."); @@ -73,12 +73,10 @@ subtest 'General Add, Get and Del tests' => sub { my $getdeleted = GetItem($itemnumber); is($getdeleted->{'itemnumber'}, undef, "Item deleted as expected."); - ($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => $branch1, holdingbranch => $branch1, location => $location, permanent_location => 'my permanent location' } , $bibnum); + ($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => $library->{branchcode}, holdingbranch => $library->{branchcode}, location => $location, permanent_location => 'my permanent location' } , $bibnum); $getitem = GetItem($itemnumber); is( $getitem->{location}, $location, "The location should not have been modified" ); is( $getitem->{permanent_location}, 'my permanent location', "The permanent_location should not have modified" ); - - $dbh->rollback; }; subtest 'GetHiddenItemnumbers tests' => sub { @@ -87,32 +85,29 @@ subtest 'GetHiddenItemnumbers tests' => sub { # This sub is controlled by the OpacHiddenItems system preference. - # Start transaction - $dbh->{AutoCommit} = 0; - $dbh->{RaiseError} = 1; + my $builder = t::lib::TestBuilder->new; + my $library1 = $builder->build({ + source => 'Branch', + }); + + my $library2 = $builder->build({ + source => 'Branch', + }); # Create a new biblio C4::Context->set_preference('marcflavour', 'MARC21'); my ($biblionumber, $biblioitemnumber) = get_biblio(); - # Add branches if they don't exist - if (not defined GetBranchDetail('CPL')) { - ModBranch({add => 1, branchcode => 'CPL', branchname => 'Centerville'}); - } - if (not defined GetBranchDetail('MPL')) { - ModBranch({add => 1, branchcode => 'MPL', branchname => 'Midway'}); - } - # Add two items my ($item1_bibnum, $item1_bibitemnum, $item1_itemnumber) = AddItem( - { homebranch => $branch1, - holdingbranch => $branch1, + { homebranch => $library1->{branchcode}, + holdingbranch => $library1->{branchcode}, withdrawn => 1 }, $biblionumber ); my ($item2_bibnum, $item2_bibitemnum, $item2_itemnumber) = AddItem( - { homebranch => $branch2, - holdingbranch => $branch2, + { homebranch => $library2->{branchcode}, + holdingbranch => $library2->{branchcode}, withdrawn => 0 }, $biblionumber ); @@ -153,43 +148,45 @@ subtest 'GetHiddenItemnumbers tests' => sub { # Two variables, a value each $opachiddenitems = " withdrawn: [1] - homebranch: [$branch2] + homebranch: [$library2->{branchcode}] "; C4::Context->set_preference( 'OpacHiddenItems', $opachiddenitems ); @hidden = GetHiddenItemnumbers( @items ); ok( scalar @hidden == 2, "Two items hidden"); - is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and homebranch=MPL hidden"); + is_deeply( \@hidden, \@itemnumbers, "withdrawn=1 and homebranch library2 hidden"); # Valid OpacHiddenItems, empty list @items = (); @hidden = GetHiddenItemnumbers( @items ); ok( scalar @hidden == 0, "Empty items list, no item hidden"); - - $dbh->rollback; }; subtest 'GetItemsInfo tests' => sub { plan tests => 4; - # Start transaction - $dbh->{AutoCommit} = 0; - $dbh->{RaiseError} = 1; + my $builder = t::lib::TestBuilder->new; + my $library1 = $builder->build({ + source => 'Branch', + }); + my $library2 = $builder->build({ + source => 'Branch', + }); # Add a biblio my ($biblionumber, $biblioitemnumber) = get_biblio(); # Add an item my ($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ - homebranch => $branch1, - holdingbranch => $branch2 + homebranch => $library1->{branchcode}, + holdingbranch => $library2->{branchcode}, }, $biblionumber ); - my $branch = GetBranchDetail( $branch1 ); + my $branch = GetBranchDetail( $library1->{branchcode} ); $branch->{ opac_info } = "homebranch OPAC info"; ModBranch($branch); - $branch = GetBranchDetail( $branch2 ); + $branch = GetBranchDetail( $library2->{branchcode} ); $branch->{ opac_info } = "holdingbranch OPAC info"; ModBranch($branch); @@ -201,17 +198,13 @@ subtest 'GetItemsInfo tests' => sub { 'GetItemsInfo returns the correct holding branch OPAC info notice' ); is( exists( $results[0]->{ onsite_checkout } ), 1, 'GetItemsInfo returns a onsite_checkout key' ); - - $dbh->rollback; }; subtest q{Test Koha::Database->schema()->resultset('Item')->itemtype()} => sub { plan tests => 4; - # Start transaction - $dbh->{AutoCommit} = 0; - $dbh->{RaiseError} = 1; + my $builder = t::lib::TestBuilder->new; my $schema = Koha::Database->new()->schema(); @@ -249,40 +242,36 @@ subtest q{Test Koha::Database->schema()->resultset('Item')->itemtype()} => sub { ok( defined $effective_itemtype && $effective_itemtype eq 'BIB_LEVEL', '$item->effective_itemtype() falls back to biblioitems.itemtype when item-level_itypes is enabled but undef' ); - - $dbh->rollback; }; subtest 'SearchItems test' => sub { plan tests => 14; - # Start transaction - $dbh->{AutoCommit} = 0; - $dbh->{RaiseError} = 1; + my $builder = t::lib::TestBuilder->new; + my $dbh = C4::Context->dbh; + + my $library1 = $builder->build({ + source => 'Branch', + }); + my $library2 = $builder->build({ + source => 'Branch', + }); C4::Context->set_preference('marcflavour', 'MARC21'); - my $cpl_items_before = SearchItemsByField( 'homebranch', 'CPL'); + my $cpl_items_before = SearchItemsByField( 'homebranch', $library1->{branchcode}); my ($biblionumber) = get_biblio(); - # Add branches if they don't exist - if (not defined GetBranchDetail('CPL')) { - ModBranch({add => 1, branchcode => 'CPL', branchname => 'Centerville'}); - } - if (not defined GetBranchDetail('MPL')) { - ModBranch({add => 1, branchcode => 'MPL', branchname => 'Midway'}); - } - my (undef, $initial_items_count) = SearchItems(undef, {rows => 1}); # Add two items my (undef, undef, $item1_itemnumber) = AddItem({ - homebranch => 'CPL', - holdingbranch => 'CPL', + homebranch => $library1->{branchcode}, + holdingbranch => $library1->{branchcode}, }, $biblionumber); my (undef, undef, $item2_itemnumber) = AddItem({ - homebranch => 'MPL', - holdingbranch => 'MPL', + homebranch => $library2->{branchcode}, + holdingbranch => $library2->{branchcode}, }, $biblionumber); my ($items, $total_results); @@ -298,14 +287,14 @@ subtest 'SearchItems test' => sub { # Search all items where homebranch = 'CPL' my $filter = { field => 'homebranch', - query => 'CPL', + query => $library1->{branchcode}, operator => '=', }; ($items, $total_results) = SearchItems($filter); ok($total_results > 0, "There is at least one CPL item"); my $all_items_are_CPL = 1; foreach my $item (@$items) { - if ($item->{homebranch} ne 'CPL') { + if ($item->{homebranch} ne $library1->{branchcode}) { $all_items_are_CPL = 0; last; } @@ -315,14 +304,14 @@ subtest 'SearchItems test' => sub { # Search all items where homebranch != 'CPL' $filter = { field => 'homebranch', - query => 'CPL', + query => $library1->{branchcode}, operator => '!=', }; ($items, $total_results) = SearchItems($filter); ok($total_results > 0, "There is at least one non-CPL item"); my $all_items_are_not_CPL = 1; foreach my $item (@$items) { - if ($item->{homebranch} eq 'CPL') { + if ($item->{homebranch} eq $library1->{branchcode}) { $all_items_are_not_CPL = 0; last; } @@ -350,7 +339,7 @@ subtest 'SearchItems test' => sub { }, { field => 'homebranch', - query => 'CPL', + query => $library1->{branchcode}, operator => '=', }, ], @@ -411,25 +400,26 @@ subtest 'SearchItems test' => sub { ($items, $total_results) = SearchItems($filter); ok(scalar @$items == 1, 'found 1 item with itemnotes = "foobar"'); - my $cpl_items_after = SearchItemsByField( 'homebranch', 'CPL'); + my $cpl_items_after = SearchItemsByField( 'homebranch', $library1->{branchcode}); is( ( scalar( @$cpl_items_after ) - scalar ( @$cpl_items_before ) ), 1, 'SearchItemsByField should return something' ); - - $dbh->rollback; }; subtest 'Koha::Item(s) tests' => sub { plan tests => 5; - # Start transaction - my $schema = Koha::Database->new()->schema(); - $schema->storage->txn_begin(); - $dbh->{RaiseError} = 1; + my $builder = t::lib::TestBuilder->new; + my $library1 = $builder->build({ + source => 'Branch', + }); + my $library2 = $builder->build({ + source => 'Branch', + }); # Create a biblio and item for testing C4::Context->set_preference('marcflavour', 'MARC21'); my ($bibnum, $bibitemnum) = get_biblio(); - my ($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => $branch1, holdingbranch => $branch2 } , $bibnum); + my ($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => $library1->{branchcode}, holdingbranch => $library2->{branchcode} } , $bibnum); # Get item. my $item = Koha::Items->find( $itemnumber ); @@ -437,33 +427,38 @@ subtest 'Koha::Item(s) tests' => sub { my $homebranch = $item->home_branch(); is( ref($homebranch), 'Koha::Branch', "Got Koha::Branch from home_branch method" ); - is( $homebranch->branchcode(), $branch1, "Home branch code matches homebranch" ); + is( $homebranch->branchcode(), $library1->{branchcode}, "Home branch code matches homebranch" ); my $holdingbranch = $item->holding_branch(); is( ref($holdingbranch), 'Koha::Branch', "Got Koha::Branch from holding_branch method" ); - is( $holdingbranch->branchcode(), $branch2, "Home branch code matches holdingbranch" ); + is( $holdingbranch->branchcode(), $library2->{branchcode}, "Home branch code matches holdingbranch" ); }; subtest 'C4::Biblio::EmbedItemsInMarcBiblio' => sub { plan tests => 7; - $dbh->{AutoCommit} = 0; - $dbh->{RaiseError} = 1; + my $builder = t::lib::TestBuilder->new; + my $library1 = $builder->build({ + source => 'Branch', + }); + my $library2 = $builder->build({ + source => 'Branch', + }); my ( $biblionumber, $biblioitemnumber ) = get_biblio(); my $item_infos = [ - { homebranch => 'CPL', holdingbranch => 'CPL' }, - { homebranch => 'CPL', holdingbranch => 'CPL' }, - { homebranch => 'CPL', holdingbranch => 'CPL' }, - { homebranch => 'MPL', holdingbranch => 'MPL' }, - { homebranch => 'MPL', holdingbranch => 'MPL' }, - { homebranch => 'CPL', holdingbranch => 'MPL' }, - { homebranch => 'CPL', holdingbranch => 'MPL' }, - { homebranch => 'CPL', holdingbranch => 'MPL' }, + { homebranch => $library1->{branchcode}, holdingbranch => $library1->{branchcode} }, + { homebranch => $library1->{branchcode}, holdingbranch => $library1->{branchcode} }, + { homebranch => $library1->{branchcode}, holdingbranch => $library1->{branchcode} }, + { homebranch => $library2->{branchcode}, holdingbranch => $library2->{branchcode} }, + { homebranch => $library2->{branchcode}, holdingbranch => $library2->{branchcode} }, + { homebranch => $library1->{branchcode}, holdingbranch => $library2->{branchcode} }, + { homebranch => $library1->{branchcode}, holdingbranch => $library2->{branchcode} }, + { homebranch => $library1->{branchcode}, holdingbranch => $library2->{branchcode} }, ]; my $number_of_items = scalar @$item_infos; my $number_of_items_with_homebranch_is_CPL = - grep { $_->{homebranch} eq 'CPL' } @$item_infos; + grep { $_->{homebranch} eq $library1->{branchcode} } @$item_infos; my @itemnumbers; for my $item_info (@$item_infos) { @@ -501,7 +496,7 @@ subtest 'C4::Biblio::EmbedItemsInMarcBiblio' => sub { is( scalar @items, $number_of_items, 'Should return all items for opac' ); my $opachiddenitems = " - homebranch: ['CPL']"; + homebranch: ['$library1->{branchcode}']"; t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems ); C4::Biblio::EmbedItemsInMarcBiblio( $record, $biblionumber ); @@ -519,7 +514,7 @@ subtest 'C4::Biblio::EmbedItemsInMarcBiblio' => sub { ); $opachiddenitems = " - homebranch: ['CPL', 'MPL']"; + homebranch: ['$library1->{branchcode}', '$library2->{branchcode}']"; t::lib::Mocks::mock_preference( 'OpacHiddenItems', $opachiddenitems ); C4::Biblio::EmbedItemsInMarcBiblio( $record, $biblionumber, undef, 1 ); @items = $record->field($itemfield); diff --git a/t/db_dependent/Items_DelItem.t b/t/db_dependent/Items_DelItem.t index 35ff6e4..05b7024 100644 --- a/t/db_dependent/Items_DelItem.t +++ b/t/db_dependent/Items_DelItem.t @@ -3,21 +3,27 @@ use Modern::Perl; use MARC::Record; use C4::Biblio; +use t::lib::TestBuilder; + use Test::More tests => 7; BEGIN { use_ok('C4::Items'); } +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; -$dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; +my $library = $builder->build({ + source => 'Branch', +}); + my ( $biblionumber, $bibitemnum ) = get_biblio(); my ( $item_bibnum, $item_bibitemnum, $itemnumber ); ( $item_bibnum, $item_bibitemnum, $itemnumber ) = - AddItem( { homebranch => 'CPL', holdingbranch => 'CPL' }, $biblionumber ); + AddItem( { homebranch => $library->{branchcode}, holdingbranch => $library->{branchcode} }, $biblionumber ); my $deleted = DelItem( { biblionumber => $biblionumber, itemnumber => $itemnumber } ); is( $deleted, 1, "DelItem should return 1 if the item has been deleted" ); @@ -25,7 +31,7 @@ my $deleted_item = GetItem($itemnumber); is( $deleted_item->{itemnumber}, undef, "DelItem with biblionumber parameter - the item should be deleted." ); ( $item_bibnum, $item_bibitemnum, $itemnumber ) = - AddItem( { homebranch => 'CPL', holdingbranch => 'CPL' }, $biblionumber ); + AddItem( { homebranch => $library->{branchcode}, holdingbranch => $library->{branchcode} }, $biblionumber ); $deleted = DelItem( { biblionumber => $biblionumber, itemnumber => $itemnumber } ); is( $deleted, 1, "DelItem should return 1 if the item has been deleted" ); $deleted_item = GetItem($itemnumber); diff --git a/t/db_dependent/Koha_template_plugin_Branches.t b/t/db_dependent/Koha_template_plugin_Branches.t index 414a311..6ae976b 100644 --- a/t/db_dependent/Koha_template_plugin_Branches.t +++ b/t/db_dependent/Koha_template_plugin_Branches.t @@ -21,15 +21,23 @@ use Modern::Perl; use Test::More tests => 7; use C4::Context; + +use t::lib::TestBuilder; + BEGIN { use_ok('Koha::Template::Plugin::Branches'); } +my $builder = t::lib::TestBuilder->new; +my $library = $builder->build({ + source => 'Branch', +}); + my $plugin = Koha::Template::Plugin::Branches->new(); ok($plugin, "initialized Branches plugin"); -my $name = $plugin->GetName('CPL'); -is($name, 'Centerville', 'retrieved expected name for CPL'); +my $name = $plugin->GetName($library->{branchcode}); +is($name, $library->{branchname}, 'retrieved expected name for library'); $name = $plugin->GetName('__ANY__'); is($name, '', 'received empty string as name of the "__ANY__" placeholder library code'); @@ -37,7 +45,7 @@ is($name, '', 'received empty string as name of the "__ANY__" placeholder librar $name = $plugin->GetName(undef); is($name, '', 'received empty string as name of NULL/undefined library code'); -my $library = $plugin->GetLoggedInBranchcode(); +$library = $plugin->GetLoggedInBranchcode(); is($library, '', 'no active library if there is no active user session'); C4::Context->_new_userenv('DUMMY_SESSION_ID'); diff --git a/t/db_dependent/Languages.t b/t/db_dependent/Languages.t index d27e823..772069a 100755 --- a/t/db_dependent/Languages.t +++ b/t/db_dependent/Languages.t @@ -30,6 +30,7 @@ ok(C4::Languages::getAllLanguages(), 'test get all languages'); C4::Context->set_preference('AdvancedSearchLanguages', ''); my $all_languages = C4::Languages::getAllLanguages('eng'); ok(@$all_languages > 10, 'retrieved a bunch of languges'); +warn Data::Dumper::Dumper $all_languages; my $languages = C4::Languages::getLanguages('eng'); is_deeply($languages, $all_languages, 'getLanguages() and getAllLanguages() return the same list'); diff --git a/t/db_dependent/Letters.t b/t/db_dependent/Letters.t index 1a21d31..9af1bcc 100644 --- a/t/db_dependent/Letters.t +++ b/t/db_dependent/Letters.t @@ -42,30 +42,28 @@ use_ok('C4::Biblio'); use_ok('C4::Bookseller'); use_ok('C4::Letters'); use t::lib::Mocks; +use t::lib::TestBuilder; use Koha::DateUtils qw( dt_from_string output_pref ); use Koha::Acquisition::Order; use Koha::Acquisition::Bookseller; -use Koha::Database; +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; - -my $database = Koha::Database->new(); -my $schema = $database->schema(); -$schema->storage->txn_begin(); - -# Start transaction $dbh->{RaiseError} = 1; $dbh->do(q|DELETE FROM letter|); $dbh->do(q|DELETE FROM message_queue|); $dbh->do(q|DELETE FROM message_transport_types|); +my $library = $builder->build({ + source => 'Branch', +}); my $date = dt_from_string; my $borrowernumber = AddMember( firstname => 'Jane', surname => 'Smith', categorycode => 'PT', - branchcode => 'CPL', + branchcode => $library->{branchcode}, dateofbirth => $date, ); @@ -157,18 +155,18 @@ Don't forget your date of birth: <>. Look at this wonderful biblio timestamp: <>. }; -$dbh->do( q|INSERT INTO letter(branchcode,module,code,name,is_html,title,content,message_transport_type) VALUES ('CPL','my module','my code','my name',1,?,?,'email')|, undef, $title, $content ); +$dbh->do( q|INSERT INTO letter(branchcode,module,code,name,is_html,title,content,message_transport_type) VALUES (?,'my module','my code','my name',1,?,?,'email')|, undef, $library->{branchcode}, $title, $content ); $letters = C4::Letters::GetLetters(); is( @$letters, 1, 'GetLetters returns the correct number of letters' ); -is( $letters->[0]->{branchcode}, 'CPL', 'GetLetters gets the branch code correctly' ); +is( $letters->[0]->{branchcode}, $library->{branchcode}, 'GetLetters gets the branch code correctly' ); is( $letters->[0]->{module}, 'my module', 'GetLetters gets the module correctly' ); is( $letters->[0]->{code}, 'my code', 'GetLetters gets the code correctly' ); is( $letters->[0]->{name}, 'my name', 'GetLetters gets the name correctly' ); # getletter -my $letter = C4::Letters::getletter('my module', 'my code', 'CPL', 'email'); -is( $letter->{branchcode}, 'CPL', 'GetLetters gets the branch code correctly' ); +my $letter = C4::Letters::getletter('my module', 'my code', $library->{branchcode}, 'email'); +is( $letter->{branchcode}, $library->{branchcode}, 'GetLetters gets the branch code correctly' ); is( $letter->{module}, 'my module', 'GetLetters gets the module correctly' ); is( $letter->{code}, 'my code', 'GetLetters gets the code correctly' ); is( $letter->{name}, 'my name', 'GetLetters gets the name correctly' ); @@ -234,11 +232,11 @@ is( @$alerts, 0, 'delalert removes an alert' ); t::lib::Mocks::mock_preference('OPACBaseURL', 'http://thisisatest.com'); my $sms_content = 'This is a SMS for an <>'; -$dbh->do( q|INSERT INTO letter(branchcode,module,code,name,is_html,title,content,message_transport_type) VALUES ('CPL','my module','my code','my name',1,'my title',?,'sms')|, undef, $sms_content ); +$dbh->do( q|INSERT INTO letter(branchcode,module,code,name,is_html,title,content,message_transport_type) VALUES (?,'my module','my code','my name',1,'my title',?,'sms')|, undef, $library->{branchcode}, $sms_content ); my $tables = { borrowers => $borrowernumber, - branches => 'CPL', + branches => $library->{branchcode}, biblio => $biblionumber, }; my $substitute = { @@ -256,13 +254,13 @@ my $repeat = [ ]; my $prepared_letter = GetPreparedLetter(( module => 'my module', - branchcode => 'CPL', + branchcode => $library->{branchcode}, letter_code => 'my code', tables => $tables, substitute => $substitute, repeat => $repeat, )); -my $branch = GetBranchDetail('CPL'); +my $branch = GetBranchDetail($library->{branchcode}); my $my_title_letter = qq|$branch->{branchname} - $substitute->{status}|; my $my_content_letter = qq|Dear Jane Smith, According to our current records, you have items that are overdue.Your library does not charge late fines, but please return or renew them at the branch below as soon as possible. @@ -285,7 +283,7 @@ is( $prepared_letter->{content}, $my_content_letter, 'GetPreparedLetter returns $prepared_letter = GetPreparedLetter(( module => 'my module', - branchcode => 'CPL', + branchcode => $library->{branchcode}, letter_code => 'my code', tables => $tables, substitute => $substitute, @@ -417,7 +415,7 @@ my $borrowernumber = AddMember( firstname => 'John', surname => 'Smith', categorycode => 'PT', - branchcode => 'CPL', + branchcode => $library->{branchcode}, dateofbirth => $date, email => 'john.smith@test.de', ); @@ -433,6 +431,3 @@ is($err2, "", "Successfully sent serial notification"); is($mail{'To'}, 'john.smith@test.de', "mailto correct in sent serial notification"); is($mail{'Message'}, 'Silence in the library,'.$subscriptionid.',No. 0', 'Serial notification text constructed successfully'); } - - -$schema->storage->txn_rollback(); diff --git a/t/db_dependent/Members.t b/t/db_dependent/Members.t index b2ebc9c..2b4e089 100755 --- a/t/db_dependent/Members.t +++ b/t/db_dependent/Members.t @@ -22,21 +22,27 @@ use Test::MockModule; use Data::Dumper; use C4::Context; +use t::lib::TestBuilder; + BEGIN { use_ok('C4::Members'); } +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; - -# Start transaction -$dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; +my $library1 = $builder->build({ + source => 'Branch', +}); +my $library2 = $builder->build({ + source => 'Branch', +}); my $CARDNUMBER = 'TESTCARD01'; my $FIRSTNAME = 'Marie'; my $SURNAME = 'Mcknight'; my $CATEGORYCODE = 'S'; -my $BRANCHCODE = 'CPL'; +my $BRANCHCODE = $library1->{branchcode}; my $CHANGED_FIRSTNAME = "Marry Ann"; my $EMAIL = "Marie\@email.com"; @@ -47,8 +53,6 @@ my $PHONE = "555-12123"; # XXX should be randomised and checked against the database my $IMPOSSIBLE_CARDNUMBER = "XYZZZ999"; -# XXX make a non-commit transaction and rollback rather than insert/delete - #my ($usernum, $userid, $usercnum, $userfirstname, $usersurname, $userbranch, $branchname, $userflags, $emailaddress, $branchprinter)= @_; my @USERENV = ( 1, @@ -215,7 +219,7 @@ is( $borrower, undef, 'DelMember should remove the patron' ); firstname => "Tomasito", surname => "None", categorycode => "S", - branchcode => "MPL", + branchcode => $library2->{branchcode}, dateofbirth => '', debarred => '', dateexpiry => '', @@ -272,10 +276,10 @@ is( $borrower->{userid}, $data{userid}, 'AddMember should insert the given useri ## Remove all entries with userid='' (should be only 1 max) $dbh->do(q|DELETE FROM borrowers WHERE userid = ''|); ## And create a patron with a userid='' -$borrowernumber = AddMember( categorycode => 'S', branchcode => 'MPL' ); +$borrowernumber = AddMember( categorycode => 'S', branchcode => $library2->{branchcode} ); $dbh->do(q|UPDATE borrowers SET userid = '' WHERE borrowernumber = ?|, undef, $borrowernumber); # Create another patron and verify the userid has been generated -$borrowernumber = AddMember( categorycode => 'S', branchcode => 'MPL' ); +$borrowernumber = AddMember( categorycode => 'S', branchcode => $library2->{branchcode} ); ok( $borrowernumber > 0, 'AddMember should have inserted the patron even if no userid is given' ); $borrower = GetMember( borrowernumber => $borrowernumber ); ok( $borrower->{userid}, 'A userid should have been generated correctly' ); @@ -332,8 +336,6 @@ subtest 'GetMemberAccountBalance' => sub { is( $total, 15 , "Total calculated correctly"); is( $total_minus_charges, 10, "Holds charges are count if HoldsInNoissuesCharge=0"); is( $other_charges, 5, "Holds charges are considered if HoldsInNoissuesCharge=1"); - - $dbh->rollback(); }; subtest 'purgeSelfRegistration' => sub { @@ -353,9 +355,8 @@ subtest 'purgeSelfRegistration' => sub { C4::Context->set_preference('PatronSelfRegistrationDefaultCategory', $c ); C4::Context->set_preference('PatronSelfRegistrationExpireTemporaryAccountsDelay', 360); C4::Members::DeleteExpiredOpacRegistrations(); - $dbh->do("INSERT INTO borrowers (surname, address, city, branchcode, categorycode, dateenrolled) VALUES ('Testaabbcc', 'Street 1', 'CITY', 'CPL', '$c', '2014-01-01 01:02:03')"); + $dbh->do("INSERT INTO borrowers (surname, address, city, branchcode, categorycode, dateenrolled) VALUES ('Testaabbcc', 'Street 1', 'CITY', ?, '$c', '2014-01-01 01:02:03')", undef, $library1->{branchcode}); is( C4::Members::DeleteExpiredOpacRegistrations(), 1, 'Test for DeleteExpiredOpacRegistrations'); - $dbh->rollback(); }; sub _find_member { diff --git a/t/db_dependent/Members/AddEnrolmentFeeIfNeeded.t b/t/db_dependent/Members/AddEnrolmentFeeIfNeeded.t index 7405dc9..7684149 100644 --- a/t/db_dependent/Members/AddEnrolmentFeeIfNeeded.t +++ b/t/db_dependent/Members/AddEnrolmentFeeIfNeeded.t @@ -4,10 +4,16 @@ use Test::More tests => 4; use C4::Context; use C4::Members; +use t::lib::TestBuilder; + +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; -$dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; +my $library = $builder->build({ + source => 'Branch', +}); + my $enrolmentfee_K = 5; my $enrolmentfee_J = 10; my $enrolmentfee_YA = 20; @@ -34,7 +40,7 @@ my %borrower_data = ( firstname => 'my firstname', surname => 'my surname', categorycode => 'K', - branchcode => 'CPL', + branchcode => $library->{branchcode}, ); my $borrowernumber = C4::Members::AddMember( %borrower_data ); @@ -62,5 +68,3 @@ is( $total, $enrolmentfee_K + $enrolmentfee_J, "Kid growing and become a juvenil C4::Members::AddEnrolmentFeeIfNeeded( 'YA', $borrowernumber ); ( $total ) = C4::Members::GetMemberAccountRecords( $borrowernumber ); is( $total, $enrolmentfee_K + $enrolmentfee_J + $enrolmentfee_YA, "Juvenile growing and become an young adult, he should pay " . ( $enrolmentfee_K + $enrolmentfee_J + $enrolmentfee_YA ) ); - -$dbh->rollback; diff --git a/t/db_dependent/Members_Attributes.t b/t/db_dependent/Members_Attributes.t index 2039db0..52e925f 100755 --- a/t/db_dependent/Members_Attributes.t +++ b/t/db_dependent/Members_Attributes.t @@ -25,10 +25,12 @@ use C4::Members::AttributeTypes; use Test::More tests => 60; +use t::lib::TestBuilder; + use_ok('C4::Members::Attributes'); +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; -$dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; $dbh->do(q|DELETE FROM issues|); @@ -36,11 +38,14 @@ $dbh->do(q|DELETE FROM borrowers|); $dbh->do(q|DELETE FROM borrower_attributes|); $dbh->do(q|DELETE FROM borrower_attribute_types|); +my $library = $builder->build({ + source => 'Branch', +}); my $borrowernumber = AddMember( firstname => 'my firstname', surname => 'my surname', categorycode => 'S', - branchcode => 'CPL', + branchcode => $library->{branchcode}, ); @@ -196,5 +201,3 @@ is( $borrower_attributes->[0]->{password}, $attributes->[1]->{password}, 'Delete C4::Members::Attributes::DeleteBorrowerAttribute($borrowernumber, $attributes->[1]); $borrower_attributes = C4::Members::Attributes::GetBorrowerAttributes($borrowernumber); is( @$borrower_attributes, 0, 'DeleteBorrowerAttribute deletes a borrower attribute' ); - -$dbh->rollback; diff --git a/t/db_dependent/Ratings.t b/t/db_dependent/Ratings.t index 1538ca4..1e88925 100755 --- a/t/db_dependent/Ratings.t +++ b/t/db_dependent/Ratings.t @@ -24,17 +24,23 @@ use C4::Members; use C4::Context; use C4::Category; +use t::lib::TestBuilder; + use_ok('C4::Ratings'); +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; $dbh->{RaiseError} = 1; -$dbh->{AutoCommit} = 0; + +my $library = $builder->build({ + source => 'Branch', +}); my ($biblionumber) = AddBiblio( MARC::Record->new, '' ); my @categories = C4::Category->all; my $categorycode = $categories[0]->categorycode; -my $branchcode = 'CPL'; +my $branchcode = $library->{branchcode}; my %john_doe = ( cardnumber => '123456', @@ -109,4 +115,4 @@ ok( defined $rating7, 'delete another rating' ); is( GetRating( $biblionumber, $borrowernumber1 ), undef, 'GetRating should return undef if no rating exist' ); -1; \ No newline at end of file +1; diff --git a/t/db_dependent/Reserves/GetReserveFee.t b/t/db_dependent/Reserves/GetReserveFee.t index ddc25ec..c7669c1 100755 --- a/t/db_dependent/Reserves/GetReserveFee.t +++ b/t/db_dependent/Reserves/GetReserveFee.t @@ -27,12 +27,15 @@ use C4::Circulation; use C4::Reserves qw|AddReserve|; use t::lib::TestBuilder; +my $builder = t::lib::TestBuilder->new(); +my $library = $builder->build({ + source => 'Branch', +}); my $mContext = new Test::MockModule('C4::Context'); $mContext->mock( 'userenv', sub { - return { branch => 'CPL' }; + return { branch => $library->{branchcode} }; }); -my $builder = t::lib::TestBuilder->new(); my $dbh = C4::Context->dbh; # after start transaction of testbuilder # Category with hold fee, two patrons @@ -112,7 +115,7 @@ sub acctlines { #calculate number of accountlines for a patron sub addreserve { return AddReserve( - 'CPL', + $library->{branchcode}, $_[0], $biblio->{biblionumber}, undef, diff --git a/t/db_dependent/Serials_2.t b/t/db_dependent/Serials_2.t index 0a233fc..7f4dfc7 100644 --- a/t/db_dependent/Serials_2.t +++ b/t/db_dependent/Serials_2.t @@ -8,6 +8,7 @@ use MARC::Record; use C4::Biblio qw( AddBiblio ); use C4::Members qw( AddMember ); use t::lib::Mocks; +use t::lib::TestBuilder; use_ok('C4::Serials'); use_ok('C4::Budgets'); @@ -16,18 +17,24 @@ local $SIG{__WARN__} = sub { warn $_[0] unless $_[0] =~ /redefined/ }; my $userenv; *C4::Context::userenv = \&Mock_userenv; +my $builder = t::lib::TestBuilder->new; +my $library1 = $builder->build({ + source => 'Branch', +}); +my $library2 = $builder->build({ + source => 'Branch', +}); my $dbh = C4::Context->dbh; -$dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; my $record = MARC::Record->new(); $record->append_fields( - MARC::Field->new( '952', '0', '0', a => 'CPL', b => 'CPL' ) + MARC::Field->new( '952', '0', '0', a => $library1->{branchcode}, b => $library1->{branchcode} ) ); my ( $biblionumber, $biblioitemnumber ) = C4::Biblio::AddBiblio($record, ''); -my $my_branch = 'CPL'; -my $another_branch = 'MPL'; +my $my_branch = $library1->{branchcode}; +my $another_branch = $library2->{branchcode}; my $budgetid; my $bpid = AddBudgetPeriod({ budget_period_startdate => '2015-01-01', diff --git a/t/db_dependent/ShelfBrowser.t b/t/db_dependent/ShelfBrowser.t index 0730f4a..2f2d14e 100644 --- a/t/db_dependent/ShelfBrowser.t +++ b/t/db_dependent/ShelfBrowser.t @@ -10,16 +10,22 @@ use C4::Biblio; use C4::Context; use C4::Items; +use t::lib::TestBuilder; + use_ok('C4::ShelfBrowser'); +my $builder = t::lib::TestBuilder->new; my $dbh = C4::Context->dbh; -$dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; $dbh->do(q|DELETE FROM reserves|); $dbh->do(q|DELETE FROM issues|); $dbh->do(q|DELETE FROM items|); +my $library = $builder->build({ + source => 'Branch', +}); + my $cn; # 100.100 150.100 200.100 210.100 300.000 320.000 400.100 410.100 500.100 510.100 520.100 600.000 610.000 700.100 710.100 720.100 730.100 740.100 750.100 @@ -54,8 +60,8 @@ my ( $biblionumber, undef, undef ) = C4::Biblio::AddBiblio($record, ''); for my $callnumber ( shuffle @callnumbers ) { my ( $biblionumber, undef, $itemnumber ) = C4::Items::AddItem({ - homebranch => 'CPL', - holdingbranch => 'CPL', + homebranch => $library->{branchcode}, + holdingbranch => $library->{branchcode}, itemcallnumber => $callnumber, }, $biblionumber); $cn->{$callnumber} = { @@ -208,5 +214,3 @@ is( $nearby->{prev_item}{itemnumber}, $cn->{'600.000'}{itemnumber}, "Test last i is( $nearby->{next_item}, undef, "Test end of the shelf: no next link" ); is( scalar( @{$nearby->{items}} ), 4, "Test last item of the shelf: got 4 items" ); - -$dbh->rollback; -- 2.1.0