Bugzilla – Attachment 20795 Details for
Bug 10539
Remove unused unit tests in lib/KohaTest
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 10539: Remove unused unit tests in lib/KohaTest
Bug-10539-Remove-unused-unit-tests-in-libKohaTest.patch (text/plain), 231.51 KB, created by
Jonathan Druart
on 2013-09-05 07:36:11 UTC
(
hide
)
Description:
Bug 10539: Remove unused unit tests in lib/KohaTest
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2013-09-05 07:36:11 UTC
Size:
231.51 KB
patch
obsolete
>From 7d1a5069360fb0b1eb44fd8eb3535fa2fd0cff73 Mon Sep 17 00:00:00 2001 >From: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> >Date: Thu, 4 Jul 2013 09:58:19 +0200 >Subject: [PATCH] Bug 10539: Remove unused unit tests in lib/KohaTest > >This patch removes all files in lib/KohaTest and the associated script >t/db_dependent/database_dependent.pl. >The second patch deals with a few consequences. > >Note that bug 10540 has been opened to save some interesting code from these >unit tests and inject them in the currently used t/db_dependent suite. > >Test plan: >See second patch. > >Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com> > >Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> >--- > t/db_dependent/database_dependent.pl | 35 - > t/db_dependent/lib/KohaTest.pm | 834 -------------------- > t/db_dependent/lib/KohaTest/Accounts.pm | 29 - > t/db_dependent/lib/KohaTest/Acquisition.pm | 140 ---- > .../lib/KohaTest/Acquisition/GetHistory.pm | 208 ----- > .../lib/KohaTest/Acquisition/GetLateOrders.pm | 106 --- > .../lib/KohaTest/Acquisition/GetParcel.pm | 66 -- > .../lib/KohaTest/Acquisition/GetParcels.pm | 290 ------- > .../lib/KohaTest/Acquisition/GetPendingOrders.pm | 82 -- > .../lib/KohaTest/Acquisition/NewOrder.pm | 108 --- > t/db_dependent/lib/KohaTest/AuthoritiesMarc.pm | 40 - > t/db_dependent/lib/KohaTest/Biblio.pm | 66 -- > t/db_dependent/lib/KohaTest/Biblio/ModBiblio.pm | 154 ---- > .../Biblio/get_biblio_authorised_values.pm | 48 -- > t/db_dependent/lib/KohaTest/Branch.pm | 35 - > t/db_dependent/lib/KohaTest/Branch/GetBranches.pm | 41 - > t/db_dependent/lib/KohaTest/Breeding.pm | 23 - > t/db_dependent/lib/KohaTest/Calendar.pm | 34 - > t/db_dependent/lib/KohaTest/Calendar/New.pm | 186 ----- > t/db_dependent/lib/KohaTest/Category.pm | 23 - > t/db_dependent/lib/KohaTest/Circulation.pm | 144 ---- > .../lib/KohaTest/Circulation/AddIssue.pm | 132 ---- > .../KohaTest/Circulation/GetUpcomingDueIssues.pm | 26 - > .../lib/KohaTest/Circulation/MarkIssueReturned.pm | 85 -- > t/db_dependent/lib/KohaTest/Context.pm | 54 -- > t/db_dependent/lib/KohaTest/Context/preference.pm | 54 -- > t/db_dependent/lib/KohaTest/Dates.pm | 37 - > t/db_dependent/lib/KohaTest/Dates/Usage.pm | 103 --- > t/db_dependent/lib/KohaTest/Heading.pm | 27 - > t/db_dependent/lib/KohaTest/Heading/MARC21.pm | 41 - > t/db_dependent/lib/KohaTest/ImportBatch.pm | 126 --- > .../KohaTest/ImportBatch/AddItemsToImportBiblio.pm | 29 - > .../KohaTest/ImportBatch/BatchStageCommitRevert.pm | 252 ------ > .../lib/KohaTest/ImportBatch/GetImportBatch.pm | 39 - > .../KohaTest/ImportBatch/GetImportRecordMarc.pm | 51 -- > .../lib/KohaTest/ImportBatch/GetZ3950BatchId.pm | 42 - > t/db_dependent/lib/KohaTest/Installer.pm | 41 - > .../lib/KohaTest/Installer/SqlScripts.pm | 83 -- > .../KohaTest/Installer/get_file_path_from_name.pm | 36 - > .../lib/KohaTest/ItemCirculationAlertPreference.pm | 27 - > t/db_dependent/lib/KohaTest/ItemType.pm | 23 - > t/db_dependent/lib/KohaTest/Items.pm | 61 -- > t/db_dependent/lib/KohaTest/Items/ColumnFixes.pm | 77 -- > .../lib/KohaTest/Items/GetItemsForInventory.pm | 123 --- > .../lib/KohaTest/Items/ModItemsFromMarc.pm | 91 --- > t/db_dependent/lib/KohaTest/Items/SetDefaults.pm | 86 -- > t/db_dependent/lib/KohaTest/Koha.pm | 49 -- > t/db_dependent/lib/KohaTest/Koha/displayServers.pm | 192 ----- > .../lib/KohaTest/Koha/get_itemtypeinfos_of.pm | 59 -- > .../lib/KohaTest/Koha/getitemtypeimagedir.pm | 27 - > t/db_dependent/lib/KohaTest/Letters.pm | 27 - > t/db_dependent/lib/KohaTest/Letters/GetLetter.pm | 32 - > t/db_dependent/lib/KohaTest/Letters/GetLetters.pm | 30 - > t/db_dependent/lib/KohaTest/Log.pm | 25 - > t/db_dependent/lib/KohaTest/Members.pm | 63 -- > .../lib/KohaTest/Members/AttributeTypes.pm | 119 --- > t/db_dependent/lib/KohaTest/Members/DebarMember.pm | 44 -- > t/db_dependent/lib/KohaTest/Members/GetMember.pm | 197 ----- > .../lib/KohaTest/Members/GetMemberDetails.pm | 150 ---- > t/db_dependent/lib/KohaTest/Members/ModMember.pm | 103 --- > t/db_dependent/lib/KohaTest/Message.pm | 52 -- > t/db_dependent/lib/KohaTest/NewsChannels.pm | 28 - > t/db_dependent/lib/KohaTest/Overdues.pm | 39 - > .../Overdues/GetBranchcodesWithOverdueRules.pm | 59 -- > .../lib/KohaTest/Overdues/GetOverdues.pm | 126 --- > t/db_dependent/lib/KohaTest/Print.pm | 21 - > t/db_dependent/lib/KohaTest/Reserves.pm | 43 - > t/db_dependent/lib/KohaTest/SMS.pm | 23 - > t/db_dependent/lib/KohaTest/SMS/send_sms.pm | 25 - > t/db_dependent/lib/KohaTest/Scripts.pm | 18 - > t/db_dependent/lib/KohaTest/Scripts/longoverdue.pm | 97 --- > t/db_dependent/lib/KohaTest/Search.pm | 31 - > t/db_dependent/lib/KohaTest/Search/SimpleSearch.pm | 140 ---- > t/db_dependent/lib/KohaTest/Serials.pm | 65 -- > t/db_dependent/lib/KohaTest/Suggestions.pm | 30 - > 75 files changed, 6352 deletions(-) > delete mode 100644 t/db_dependent/database_dependent.pl > delete mode 100644 t/db_dependent/lib/KohaTest.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Accounts.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Acquisition.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Acquisition/GetHistory.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Acquisition/GetLateOrders.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Acquisition/GetParcel.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Acquisition/GetParcels.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Acquisition/GetPendingOrders.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Acquisition/NewOrder.pm > delete mode 100644 t/db_dependent/lib/KohaTest/AuthoritiesMarc.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Biblio.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Biblio/ModBiblio.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Biblio/get_biblio_authorised_values.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Branch.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Branch/GetBranches.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Breeding.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Calendar.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Calendar/New.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Category.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Circulation.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Circulation/AddIssue.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Circulation/GetUpcomingDueIssues.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Circulation/MarkIssueReturned.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Context.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Context/preference.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Dates.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Dates/Usage.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Heading.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Heading/MARC21.pm > delete mode 100644 t/db_dependent/lib/KohaTest/ImportBatch.pm > delete mode 100644 t/db_dependent/lib/KohaTest/ImportBatch/AddItemsToImportBiblio.pm > delete mode 100644 t/db_dependent/lib/KohaTest/ImportBatch/BatchStageCommitRevert.pm > delete mode 100644 t/db_dependent/lib/KohaTest/ImportBatch/GetImportBatch.pm > delete mode 100644 t/db_dependent/lib/KohaTest/ImportBatch/GetImportRecordMarc.pm > delete mode 100644 t/db_dependent/lib/KohaTest/ImportBatch/GetZ3950BatchId.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Installer.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Installer/SqlScripts.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Installer/get_file_path_from_name.pm > delete mode 100644 t/db_dependent/lib/KohaTest/ItemCirculationAlertPreference.pm > delete mode 100644 t/db_dependent/lib/KohaTest/ItemType.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Items.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Items/ColumnFixes.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Items/GetItemsForInventory.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Items/ModItemsFromMarc.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Items/SetDefaults.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Koha.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Koha/displayServers.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Koha/get_itemtypeinfos_of.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Koha/getitemtypeimagedir.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Letters.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Letters/GetLetter.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Letters/GetLetters.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Log.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Members.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Members/AttributeTypes.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Members/DebarMember.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Members/GetMember.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Members/GetMemberDetails.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Members/ModMember.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Message.pm > delete mode 100644 t/db_dependent/lib/KohaTest/NewsChannels.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Overdues.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Overdues/GetBranchcodesWithOverdueRules.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Overdues/GetOverdues.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Print.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Reserves.pm > delete mode 100644 t/db_dependent/lib/KohaTest/SMS.pm > delete mode 100644 t/db_dependent/lib/KohaTest/SMS/send_sms.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Scripts.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Scripts/longoverdue.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Search.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Search/SimpleSearch.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Serials.pm > delete mode 100644 t/db_dependent/lib/KohaTest/Suggestions.pm > >diff --git a/t/db_dependent/database_dependent.pl b/t/db_dependent/database_dependent.pl >deleted file mode 100644 >index de05224..0000000 >--- a/t/db_dependent/database_dependent.pl >+++ /dev/null >@@ -1,35 +0,0 @@ >-#!/usr/bin/perl >- >-use warnings; >-use strict; >- >-=head2 >- >- >- >-=cut >- >-use C4::Context; >-use Data::Dumper; >-use Test::More; >- >-use Test::Class::Load qw ( . ); # run from the t/db_dependent directory >- >-KohaTest::clear_test_database(); >-KohaTest::create_test_database(); >- >-KohaTest::start_zebrasrv(); >-KohaTest::start_zebraqueue_daemon(); >- >-if ($ENV{'TEST_CLASS'}) { >- # assume only one test class is specified; >- # should extend to allow multiples, but that will >- # mean changing how test classes are loaded. >- eval "KohaTest::$ENV{'TEST_CLASS'}->runtests"; >-} else { >- Test::Class->runtests; >-} >- >-KohaTest::stop_zebraqueue_daemon(); >-KohaTest::stop_zebrasrv(); >- >diff --git a/t/db_dependent/lib/KohaTest.pm b/t/db_dependent/lib/KohaTest.pm >deleted file mode 100644 >index 5a508ec..0000000 >--- a/t/db_dependent/lib/KohaTest.pm >+++ /dev/null >@@ -1,834 +0,0 @@ >-package KohaTest; >-use base qw(Test::Class); >- >-use Test::More; >-use Data::Dumper; >- >-eval "use Test::Class"; >-plan skip_all => "Test::Class required for performing database tests" if $@; >-# Or, maybe I should just die there. >- >-use C4::Auth; >-use C4::Biblio; >-use C4::Bookseller qw( AddBookseller ); >-use C4::Context; >-use C4::Items; >-use C4::Members; >-use C4::Search; >-use C4::Installer; >-use C4::Languages; >-use File::Temp qw/ tempdir /; >-use CGI; >-use Time::localtime; >- >-# Since this is an abstract base class, this prevents these tests from >-# being run directly unless we're testing a subclass. It just makes >-# things faster. >-__PACKAGE__->SKIP_CLASS( 1 ); >- >-INIT { >- if ($ENV{SINGLE_TEST}) { >- # if we're running the tests in one >- # or more test files specified via >- # >- # make test-single TEST_FILES=lib/KohaTest/Foo.pm >- # >- # use this INIT trick taken from the POD for >- # Test::Class::Load. >- start_zebrasrv(); >- Test::Class->runtests; >- stop_zebrasrv(); >- } >-} >- >-use Attribute::Handlers; >- >-=head2 Expensive test method attribute >- >-If a test method is decorated with an Expensive >-attribute, it is skipped unless the RUN_EXPENSIVE_TESTS >-environment variable is defined. >- >-To declare an entire test class and its subclasses expensive, >-define a SKIP_CLASS with the Expensive attribute: >- >- sub SKIP_CLASS : Expensive { } >- >-=cut >- >-sub Expensive : ATTR(CODE) { >- my ($package, $symbol, $sub, $attr, $data, $phase) = @_; >- my $name = *{$symbol}{NAME}; >- if ($name eq 'SKIP_CLASS') { >- if ($ENV{'RUN_EXPENSIVE_TESTS'}) { >- *{$symbol} = sub { 0; } >- } else { >- *{$symbol} = sub { "Skipping expensive test classes $package (and subclasses)"; } >- } >- } else { >- unless ($ENV{'RUN_EXPENSIVE_TESTS'}) { >- # a test method that runs no tests and just returns a scalar is viewed by Test::Class as a skip >- *{$symbol} = sub { "Skipping expensive test $package\:\:$name"; } >- } >- } >-} >- >-=head2 startup methods >- >-these are run once, at the beginning of the whole test suite >- >-=cut >- >-sub startup_15_truncate_tables : Test( startup => 1 ) { >- my $self = shift; >- >-# my @truncate_tables = qw( accountlines >-# accountoffsets >-# action_logs >-# alert >-# aqbasket >-# aqbookfund >-# aqbooksellers >-# aqbudget >-# aqorderdelivery >-# aqorders >-# auth_header >-# auth_subfield_structure >-# auth_tag_structure >-# auth_types >-# authorised_values >-# biblio >-# biblio_framework >-# biblioitems >-# borrowers >-# branchcategories >-# branches >-# branchrelations >-# branchtransfers >-# browser >-# categories >-# cities >-# class_sort_rules >-# class_sources >-# currency >-# deletedbiblio >-# deletedbiblioitems >-# deletedborrowers >-# deleteditems >-# ethnicity >-# import_batches >-# import_biblios >-# import_items >-# import_record_matches >-# import_records >-# issues >-# issuingrules >-# items >-# itemtypes >-# labels >-# labels_conf >-# labels_profile >-# labels_templates >-# language_descriptions >-# language_rfc4646_to_iso639 >-# language_script_bidi >-# language_script_mapping >-# language_subtag_registry >-# letter >-# marc_matchers >-# marc_subfield_structure >-# marc_tag_structure >-# matchchecks >-# matcher_matchpoints >-# matchpoint_component_norms >-# matchpoint_components >-# matchpoints >-# notifys >-# old_issues >-# old_reserves >-# opac_news >-# overduerules >-# patroncards >-# patronimage >-# printers >-# printers_profile >-# repeatable_holidays >-# reports_dictionary >-# reserveconstraints >-# reserves >-# reviews >-# roadtype >-# saved_reports >-# saved_sql >-# serial >-# serialitems >-# services_throttle >-# sessions >-# special_holidays >-# statistics >-# stopwords >-# subscription >-# subscriptionhistory >-# subscriptionroutinglist >-# suggestions >-# systempreferences >-# tags >-# userflags >-# virtualshelfcontents >-# virtualshelves >-# z3950servers >-# zebraqueue >-# ); >- >- my @truncate_tables = qw( accountlines >- accountoffsets >- alert >- aqbasket >- aqbooksellers >- aqorderdelivery >- aqorders >- auth_header >- branchcategories >- branchrelations >- branchtransfers >- browser >- cities >- deletedbiblio >- deletedbiblioitems >- deletedborrowers >- deleteditems >- ethnicity >- issues >- issuingrules >- matchchecks >- notifys >- old_issues >- old_reserves >- overduerules >- patroncards >- patronimage >- printers >- printers_profile >- reports_dictionary >- reserveconstraints >- reserves >- reviews >- roadtype >- saved_reports >- saved_sql >- serial >- serialitems >- services_throttle >- special_holidays >- statistics >- subscription >- subscriptionhistory >- subscriptionroutinglist >- suggestions >- tags >- virtualshelfcontents >- ); >- >- my $failed_to_truncate = 0; >- foreach my $table ( @truncate_tables ) { >- my $dbh = C4::Context->dbh(); >- $dbh->do( "truncate $table" ) >- or $failed_to_truncate = 1; >- } >- is( $failed_to_truncate, 0, 'truncated tables' ); >-} >- >-=head2 startup_20_add_bookseller >- >-we need a bookseller for many of the tests, so let's insert one. Feel >-free to use this one, or insert your own. >- >-=cut >- >-sub startup_20_add_bookseller : Test(startup => 1) { >- my $self = shift; >- >- my $booksellerinfo = { name => 'bookseller ' . $self->random_string(), >- }; >- >- my $id = AddBookseller( $booksellerinfo ); >- ok( $id, "created bookseller: $id" ); >- $self->{'booksellerid'} = $id; >- >- return; >-} >- >-=head2 startup_22_add_bookfund >- >-we need a bookfund for many of the tests. This currently uses one that >-is in the skeleton database. free to use this one, or insert your >-own. >- >-sub startup_22_add_bookfund : Test(startup => 2) { >- my $self = shift; >- >- my $bookfundid = 'GEN'; >- my $bookfund = GetBookFund( $bookfundid, undef ); >- # diag( Data::Dumper->Dump( [ $bookfund ], qw( bookfund ) ) ); >- is( $bookfund->{'bookfundid'}, $bookfundid, "found bookfund: '$bookfundid'" ); >- is( $bookfund->{'bookfundname'}, 'General Stacks', "found bookfund: '$bookfundid'" ); >- >- $self->{'bookfundid'} = $bookfundid; >- return; >-} >- >-=cut >- >-=head2 startup_24_add_branch >- >-=cut >- >-sub startup_24_add_branch : Test(startup => 1) { >- my $self = shift; >- >- my $branch_info = { >- add => 1, >- branchcode => $self->random_string(3), >- branchname => $self->random_string(), >- branchaddress1 => $self->random_string(), >- branchaddress2 => $self->random_string(), >- branchaddress3 => $self->random_string(), >- branchphone => $self->random_phone(), >- branchfax => $self->random_phone(), >- brancemail => $self->random_email(), >- branchip => $self->random_ip(), >- branchprinter => $self->random_string(), >- }; >- C4::Branch::ModBranch($branch_info); >- $self->{'branchcode'} = $branch_info->{'branchcode'}; >- ok( $self->{'branchcode'}, "created branch: $self->{'branchcode'}" ); >- >-} >- >-=head2 startup_24_add_member >- >-Add a patron/member for the tests to use >- >-=cut >- >-sub startup_24_add_member : Test(startup => 1) { >- my $self = shift; >- >- my $memberinfo = { surname => 'surname ' . $self->random_string(), >- firstname => 'firstname' . $self->random_string(), >- address => 'address' . $self->random_string(), >- city => 'city' . $self->random_string(), >- cardnumber => 'card' . $self->random_string(), >- branchcode => 'CPL', # CPL => Centerville >- categorycode => 'PT', # PT => PaTron >- dateexpiry => '2010-01-01', >- password => 'testpassword', >- dateofbirth => $self->random_date(), >- }; >- >- my $borrowernumber = AddMember( %$memberinfo ); >- ok( $borrowernumber, "created member: $borrowernumber" ); >- $self->{'memberid'} = $borrowernumber; >- >- return; >-} >- >-=head2 startup_30_login >- >-=cut >- >-sub startup_30_login : Test( startup => 2 ) { >- my $self = shift; >- >- $self->{'sessionid'} = '12345678'; # does this value matter? >- my $borrower_details = C4::Members::GetMemberDetails( $self->{'memberid'} ); >- ok( $borrower_details->{'cardnumber'}, 'cardnumber' ); >- >- # make a cookie and force it into $cgi. >- # This would be a lot easier with Test::MockObject::Extends. >- my $cgi = CGI->new( { userid => $borrower_details->{'cardnumber'}, >- password => 'testpassword' } ); >- my $setcookie = $cgi->cookie( -name => 'CGISESSID', >- -value => $self->{'sessionid'} ); >- $cgi->{'.cookies'} = { CGISESSID => $setcookie }; >- is( $cgi->cookie('CGISESSID'), $self->{'sessionid'}, 'the CGISESSID cookie is set' ); >- # diag( Data::Dumper->Dump( [ $cgi->cookie('CGISESSID') ], [ qw( cookie ) ] ) ); >- >- # C4::Auth::checkauth sometimes emits a warning about unable to append to sessionlog. That's OK. >- my ( $userid, $cookie, $sessionID ) = C4::Auth::checkauth( $cgi, 'noauth', {}, 'intranet' ); >- # diag( Data::Dumper->Dump( [ $userid, $cookie, $sessionID ], [ qw( userid cookie sessionID ) ] ) ); >- >- # my $session = C4::Auth::get_session( $sessionID ); >- # diag( Data::Dumper->Dump( [ $session ], [ qw( session ) ] ) ); >- >- >-} >- >-=head2 setup methods >- >-setup methods are run before every test method >- >-=cut >- >-=head2 teardown methods >- >-teardown methods are many time, once at the end of each test method. >- >-=cut >- >-=head2 shutdown methods >- >-shutdown methods are run once, at the end of the test suite >- >-=cut >- >-=head2 utility methods >- >-These are not test methods, but they're handy >- >-=cut >- >-=head3 random_string >- >-Nice for generating names and such. It's not actually random, more >-like arbitrary. >- >-=cut >- >-sub random_string { >- my $self = shift; >- >- my $wordsize = shift || 6; # how many letters in your string? >- >- # leave out these characters: "oOlL10". They're too confusing. >- my @alphabet = ( 'a'..'k','m','n','p'..'z', 'A'..'K','M','N','P'..'Z', 2..9 ); >- >- my $randomstring; >- foreach ( 0..$wordsize ) { >- $randomstring .= $alphabet[ rand( scalar( @alphabet ) ) ]; >- } >- return $randomstring; >- >-} >- >-=head3 random_phone >- >-generates a random phone number. Currently, it's not actually random. It's an unusable US phone number >- >-=cut >- >-sub random_phone { >- my $self = shift; >- >- return '212-555-5555'; >- >-} >- >-=head3 random_email >- >-generates a random email address. They're all in the unusable >-'example.com' domain that is designed for this purpose. >- >-=cut >- >-sub random_email { >- my $self = shift; >- >- return $self->random_string() . '@example.com'; >- >-} >- >-=head3 random_ip >- >-returns an IP address suitable for testing purposes. >- >-=cut >- >-sub random_ip { >- my $self = shift; >- >- return '127.0.0.2'; >- >-} >- >-=head3 random_date >- >-returns a somewhat random date in the iso (yyyy-mm-dd) format. >- >-=cut >- >-sub random_date { >- my $self = shift; >- >- my $year = 1800 + int( rand(300) ); # 1800 - 2199 >- my $month = 1 + int( rand(12) ); # 1 - 12 >- my $day = 1 + int( rand(28) ); # 1 - 28 >- # stop at the 28th to keep us from generating February 31st and such. >- >- return sprintf( '%04d-%02d-%02d', $year, $month, $day ); >- >-} >- >-=head3 tomorrow >- >-returns tomorrow's date as YYYY-MM-DD. >- >-=cut >- >-sub tomorrow { >- my $self = shift; >- >- return $self->days_from_now( 1 ); >- >-} >- >-=head3 yesterday >- >-returns yesterday's date as YYYY-MM-DD. >- >-=cut >- >-sub yesterday { >- my $self = shift; >- >- return $self->days_from_now( -1 ); >-} >- >- >-=head3 days_from_now >- >-returns an arbitrary date based on today in YYYY-MM-DD format. >- >-=cut >- >-sub days_from_now { >- my $self = shift; >- my $days = shift or return; >- >- my $seconds = time + $days * 60*60*24; >- my $yyyymmdd = sprintf( '%04d-%02d-%02d', >- localtime( $seconds )->year() + 1900, >- localtime( $seconds )->mon() + 1, >- localtime( $seconds )->mday() ); >- return $yyyymmdd; >-} >- >-=head3 add_biblios >- >- $self->add_biblios( count => 10, >- add_items => 1, ); >- >- named parameters: >- count: number of biblios to add >- add_items: should you add items for each one? >- >- returns: >- I don't know yet. >- >- side effects: >- adds the biblionumbers to the $self->{'biblios'} listref >- >- Notes: >- Should I allow you to pass in biblio information, like title? >- Since this method is in the KohaTest class, all tests in it will be ignored, unless you call this from your own namespace. >- This runs 10 tests, plus 4 for each "count", plus 3 more for each item added. >- >-=cut >- >-sub add_biblios { >- my $self = shift; >- my %param = @_; >- >- $param{'count'} = 1 unless defined( $param{'count'} ); >- $param{'add_items'} = 0 unless defined( $param{'add_items'} ); >- >- foreach my $counter ( 1..$param{'count'} ) { >- my $marcrecord = MARC::Record->new(); >- isa_ok( $marcrecord, 'MARC::Record' ); >- my @marc_fields = ( MARC::Field->new( '100', '1', '0', >- a => 'Twain, Mark', >- d => "1835-1910." ), >- MARC::Field->new( '245', '1', '4', >- a => sprintf( 'The Adventures of Huckleberry Finn Test %s', $counter ), >- c => "Mark Twain ; illustrated by E.W. Kemble." ), >- MARC::Field->new( '952', '0', '0', >- p => '12345678' . $self->random_string() ), # barcode >- MARC::Field->new( '952', '0', '0', >- o => $self->random_string() ), # callnumber >- MARC::Field->new( '952', '0', '0', >- a => 'CPL', >- b => 'CPL' ), >- ); >- >- my $appendedfieldscount = $marcrecord->append_fields( @marc_fields ); >- >- diag $MARC::Record::ERROR if ( $MARC::Record::ERROR ); >- is( $appendedfieldscount, scalar @marc_fields, 'added correct number of MARC fields' ); >- >- my $frameworkcode = ''; # XXX I'd like to put something reasonable here. >- my ( $biblionumber, $biblioitemnumber ) = AddBiblio( $marcrecord, $frameworkcode ); >- ok( $biblionumber, "the biblionumber is $biblionumber" ); >- ok( $biblioitemnumber, "the biblioitemnumber is $biblioitemnumber" ); >- if ( $param{'add_items'} ) { >- # my @iteminfo = AddItem( {}, $biblionumber ); >- my @iteminfo = AddItemFromMarc( $marcrecord, $biblionumber ); >- is( $iteminfo[0], $biblionumber, "biblionumber is $biblionumber" ); >- is( $iteminfo[1], $biblioitemnumber, "biblioitemnumber is $biblioitemnumber" ); >- ok( $iteminfo[2], "itemnumber is $iteminfo[2]" ); >- push @{ $self->{'items'} }, >- { biblionumber => $iteminfo[0], >- biblioitemnumber => $iteminfo[1], >- itemnumber => $iteminfo[2], >- }; >- } >- push @{$self->{'biblios'}}, $biblionumber; >- } >- >- $self->reindex_marc(); >- my $query = 'Finn Test'; >- my ( $error, $results, undef ) = SimpleSearch( $query ); >- if ( !defined $error && $param{'count'} <= @{$results} ) { >- pass( "found all $param{'count'} titles" ); >- } else { >- fail( "we never found all $param{'count'} titles" ); >- } >- >-} >- >-=head3 reindex_marc >- >-Do a fast reindexing of all of the bib and authority >-records and mark all zebraqueue entries done. >- >-Useful for test routines that need to do a >-lot of indexing without having to wait for >-zebraqueue. >- >-=cut >- >-sub reindex_marc { >- my $self = shift; >- >- # mark zebraqueue done regardless of the indexing mode >- my $dbh = C4::Context->dbh(); >- $dbh->do("UPDATE zebraqueue SET done = 1 WHERE done = 0"); >- >- my $directory = tempdir(CLEANUP => 1); >- foreach my $record_type qw(biblio authority) { >- mkdir "$directory/$record_type"; >- my $sth = $dbh->prepare($record_type eq "biblio" ? "SELECT marc FROM biblioitems" : "SELECT marc FROM auth_header"); >- $sth->execute(); >- open my $out, '>:encoding(UTF-8)', "$directory/$record_type/records"; >- while (my ($blob) = $sth->fetchrow_array) { >- print {$out} $blob; >- } >- close $out; >- my $zebra_server = "${record_type}server"; >- my $zebra_config = C4::Context->zebraconfig($zebra_server)->{'config'}; >- my $zebra_db_dir = C4::Context->zebraconfig($zebra_server)->{'directory'}; >- my $zebra_db = $record_type eq 'biblio' ? 'biblios' : 'authorities'; >- system "zebraidx -c $zebra_config -d $zebra_db -g iso2709 init > /dev/null 2>\&1"; >- system "zebraidx -c $zebra_config -d $zebra_db -g iso2709 update $directory/${record_type} > /dev/null 2>\&1"; >- system "zebraidx -c $zebra_config -d $zebra_db -g iso2709 commit > /dev/null 2>\&1"; >- } >- >-} >- >- >-=head3 clear_test_database >- >- removes all tables from test database so that install starts with a clean slate >- >-=cut >- >-sub clear_test_database { >- >- diag "removing tables from test database"; >- >- my $dbh = C4::Context->dbh; >- my $schema = C4::Context->config("database"); >- >- my @tables = get_all_tables($dbh, $schema); >- foreach my $table (@tables) { >- drop_all_foreign_keys($dbh, $table); >- } >- >- foreach my $table (@tables) { >- drop_table($dbh, $table); >- } >-} >- >-sub get_all_tables { >- my ($dbh, $schema) = @_; >- my $sth = $dbh->prepare("SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ?"); >- my @tables = (); >- $sth->execute($schema); >- while (my ($table) = $sth->fetchrow_array) { >- push @tables, $table; >- } >- $sth->finish; >- return @tables; >-} >- >-sub drop_all_foreign_keys { >- my ($dbh, $table) = @_; >- # get the table description >- my $sth = $dbh->prepare("SHOW CREATE TABLE $table"); >- $sth->execute; >- my $vsc_structure = $sth->fetchrow; >- # split on CONSTRAINT keyword >- my @fks = split /CONSTRAINT /,$vsc_structure; >- # parse each entry >- foreach (@fks) { >- # isolate what is before FOREIGN KEY, if there is something, it's a foreign key to drop >- $_ = /(.*) FOREIGN KEY.*/; >- my $id = $1; >- if ($id) { >- # we have found 1 foreign, drop it >- $dbh->do("ALTER TABLE $table DROP FOREIGN KEY $id"); >- if ( $dbh->err ) { >- diag "unable to DROP FOREIGN KEY '$id' on TABLE '$table' due to: " . $dbh->errstr(); >- } >- undef $id; >- } >- } >-} >- >-sub drop_table { >- my ($dbh, $table) = @_; >- $dbh->do("DROP TABLE $table"); >- if ( $dbh->err ) { >- diag "unable to drop table: '$table' due to: " . $dbh->errstr(); >- } >-} >- >-=head3 create_test_database >- >- sets up the test database. >- >-=cut >- >-sub create_test_database { >- >- diag 'creating testing database...'; >- my $installer = C4::Installer->new() or die 'unable to create new installer'; >- # warn Data::Dumper->Dump( [ $installer ], [ 'installer' ] ); >- my $all_languages = getAllLanguages(); >- my $error = $installer->load_db_schema(); >- die "unable to load_db_schema: $error" if ( $error ); >- my $list = $installer->sql_file_list('en', 'marc21', { optional => 1, >- mandatory => 1 } ); >- my ($fwk_language, $installed_list) = $installer->load_sql_in_order($all_languages, @$list); >- $installer->set_version_syspref(); >- $installer->set_marcflavour_syspref('MARC21'); >- diag 'database created.' >-} >- >- >-=head3 start_zebrasrv >- >- This method deletes and reinitializes the zebra database directory, >- and then spans off a zebra server. >- >-=cut >- >-sub start_zebrasrv { >- >- stop_zebrasrv(); >- diag 'cleaning zebrasrv...'; >- >- foreach my $zebra_server ( qw( biblioserver authorityserver ) ) { >- my $zebra_config = C4::Context->zebraconfig($zebra_server)->{'config'}; >- my $zebra_db_dir = C4::Context->zebraconfig($zebra_server)->{'directory'}; >- foreach my $zebra_db_name ( qw( biblios authorities ) ) { >- my $command = "zebraidx -c $zebra_config -d $zebra_db_name init"; >- my $return = system( $command . ' > /dev/null 2>&1' ); >- if ( $return != 0 ) { >- diag( "command '$command' died with value: " . $? >> 8 ); >- } >- >- $command = "zebraidx -c $zebra_config -d $zebra_db_name create $zebra_db_name"; >- diag $command; >- $return = system( $command . ' > /dev/null 2>&1' ); >- if ( $return != 0 ) { >- diag( "command '$command' died with value: " . $? >> 8 ); >- } >- } >- } >- >- diag 'starting zebrasrv...'; >- >- my $pidfile = File::Spec->catdir( C4::Context->config("logdir"), 'zebra.pid' ); >- my $command = sprintf( 'zebrasrv -f %s -D -l %s -p %s', >- $ENV{'KOHA_CONF'}, >- File::Spec->catdir( C4::Context->config("logdir"), 'zebra.log' ), >- $pidfile, >- ); >- diag $command; >- my $output = qx( $command ); >- if ( $output ) { >- diag $output; >- } >- if ( -e $pidfile, 'pidfile exists' ) { >- diag 'zebrasrv started.'; >- } else { >- die 'unable to start zebrasrv'; >- } >- return $output; >-} >- >-=head3 stop_zebrasrv >- >- using the PID file for the zebra server, send it a TERM signal with >- "kill". We can't tell if the process actually dies or not. >- >-=cut >- >-sub stop_zebrasrv { >- >- my $pidfile = File::Spec->catdir( C4::Context->config("logdir"), 'zebra.pid' ); >- if ( -e $pidfile ) { >- open( my $pidh, '<', $pidfile ) >- or return; >- if ( defined $pidh ) { >- my ( $pid ) = <$pidh> or return; >- close $pidh; >- my $killed = kill 15, $pid; # 15 is TERM >- if ( $killed != 1 ) { >- warn "unable to kill zebrasrv with pid: $pid"; >- } >- } >- } >-} >- >- >-=head3 start_zebraqueue_daemon >- >- kick off a zebraqueue_daemon.pl process. >- >-=cut >- >-sub start_zebraqueue_daemon { >- >- my $command = q(run/bin/koha-index-daemon-ctl.sh start); >- diag $command; >- my $started = system( $command ); >- diag "started: $started"; >- >-} >- >-=head3 stop_zebraqueue_daemon >- >- >-=cut >- >-sub stop_zebraqueue_daemon { >- >- my $command = q(run/bin/koha-index-daemon-ctl.sh stop); >- diag $command; >- my $started = system( $command ); >- diag "started: $started"; >- >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Accounts.pm b/t/db_dependent/lib/KohaTest/Accounts.pm >deleted file mode 100644 >index ac3a78e..0000000 >--- a/t/db_dependent/lib/KohaTest/Accounts.pm >+++ /dev/null >@@ -1,29 +0,0 @@ >-package KohaTest::Accounts; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Accounts; >-sub testing_class { 'C4::Accounts' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( recordpayment >- makepayment >- getnextacctno >- manualinvoice >- fixcredit >- refund >- getcharges >- getcredits >- getrefunds >- ); # removed fixaccounts (unused by codebase) >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Acquisition.pm b/t/db_dependent/lib/KohaTest/Acquisition.pm >deleted file mode 100644 >index 3f0b789..0000000 >--- a/t/db_dependent/lib/KohaTest/Acquisition.pm >+++ /dev/null >@@ -1,140 +0,0 @@ >-package KohaTest::Acquisition; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Acquisition; >-use C4::Budgets; >-use C4::Context; >-use C4::Members; >-use Time::localtime; >- >-sub testing_class { 'C4::Acquisition' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( GetBasket >- NewBasket >- CloseBasket >- GetPendingOrders >- GetOrders >- GetOrder >- NewOrder >- ModOrder >- ModReceiveOrder >- SearchOrder >- DelOrder >- GetParcel >- GetParcels >- GetLateOrders >- GetHistory >- GetRecentAcqui >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-=head3 create_new_basket >- >- creates a baseket by creating an order with no baseket number. >- >- named parameters: >- authorizedby >- invoice >- date >- >- returns: baseket number, order number >- >- runs 4 tests >- >-=cut >- >-sub create_new_basket { >- my $self = shift; >- my %param = @_; >- $param{'authorizedby'} = $self->{'memberid'} unless exists $param{'authorizedby'}; >- $param{'invoice'} = 123 unless exists $param{'invoice'}; >- >- my $today = sprintf( '%04d-%02d-%02d', >- localtime->year() + 1900, >- localtime->mon() + 1, >- localtime->mday() ); >- >- # I actually think that this parameter is unused. >- $param{'date'} = $today unless exists $param{'date'}; >- >- $self->add_biblios( add_items => 1 ); >- ok( scalar @{$self->{'biblios'}} > 0, 'we have added at least one biblio' ); >- >- my $rand = int(rand(10000)); >- my $basketno = NewBasket( $self->{'booksellerid'}, $param{'authorizedby'}, "Basket $rand"); >-# $basketnote, $basketbooksellernote, $basketcontractnumber ); >-# The following keys are used: "biblionumber", "title", "basketno", "quantity", "notes", "biblioitemnumber", "rrp", "ecost", "gst", "unitprice", "subscription", "sort1", "sort2", "booksellerinvoicenumber", "listprice", "budgetdate", "purchaseordernumber", "branchcode", "booksellerinvoicenumber", "bookfundid". >- my $budget_id = AddBudget( { budget_name => "Budget $rand" } ); >- my ( undef, $ordernumber ) = NewOrder( { >- basketno => $basketno, >- budget_id => $budget_id, >- biblionumber => $self->{'biblios'}[0], >- quantity => 1, >- bookfundid => $self->{'bookfundid'}, >- rrp => 1, >- ecost => 1, >- booksellerinvoicenumber => $param{'invoice'}, >- } ); >- ok( $basketno, "my basket number is $basketno" ); >- ok( $ordernumber, "my order number is $ordernumber" ); >- >- my $order = GetOrder( $ordernumber ); >- is( $order->{'ordernumber'}, $ordernumber, 'got the right order' ) >- or diag( Data::Dumper->Dump( [ $order ], [ 'order' ] ) ); >- >- is( $order->{'budgetdate'}, $today, "the budget date is $today" ); >- >- # XXX should I stuff these in $self? >- return ( $basketno, $ordernumber ); >- >-} >- >- >-sub enable_independant_branches { >- my $self = shift; >- >- my $member = GetMember( 'borrowernumber' =>$self->{'memberid'} ); >- >- C4::Context::set_userenv( 0, # usernum >- $self->{'memberid'}, # userid >- undef, # usercnum >- undef, # userfirstname >- undef, # usersurname >- $member->{'branchcode'}, # userbranch >- undef, # branchname >- 0, # userflags >- undef, # emailaddress >- undef, # branchprinter >- ); >- >- # set a preference. There's surely a method for this, but I can't find it. >- my $retval = C4::Context->dbh->do( q(update systempreferences set value = '1' where variable = 'IndependentBranches') ); >- ok( $retval, 'set the preference' ); >- >- ok( C4::Context->userenv, 'usernev' ); >- isnt( C4::Context->userenv->{flags}, 1, 'flag != 1' ) >- or diag( Data::Dumper->Dump( [ C4::Context->userenv ], [ 'userenv' ] ) ); >- >- is( C4::Context->userenv->{branch}, $member->{'branchcode'}, 'we have set the right branch in C4::Context: ' . $member->{'branchcode'} ); >- >-} >- >-sub disable_independant_branches { >- my $self = shift; >- >- my $retval = C4::Context->dbh->do( q(update systempreferences set value = '0' where variable = 'IndependentBranches') ); >- ok( $retval, 'set the preference back' ); >- >- >-} >-1; >diff --git a/t/db_dependent/lib/KohaTest/Acquisition/GetHistory.pm b/t/db_dependent/lib/KohaTest/Acquisition/GetHistory.pm >deleted file mode 100644 >index 8191723..0000000 >--- a/t/db_dependent/lib/KohaTest/Acquisition/GetHistory.pm >+++ /dev/null >@@ -1,208 +0,0 @@ >-package KohaTest::Acquisition::GetHistory; >-use base qw( KohaTest::Acquisition ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Acquisition; >-use C4::Context; >-use C4::Members; >-use C4::Biblio; >-use C4::Bookseller; >- >-=head3 no_history >- >- >- >-=cut >- >-sub no_history : Test( 4 ) { >- my $self = shift; >- >- # my ( $order_loop, $total_qty, $total_price, $total_qtyreceived) = GetHistory( $title, $author, $name, $from_placed_on, $to_placed_on ) >- >- my ( $order_loop, $total_qty, $total_price, $total_qtyreceived) = GetHistory(); >- # diag( Data::Dumper->Dump( [ $order_loop, $total_qty, $total_price, $total_qtyreceived ], [ qw( order_loop total_qty total_price total_qtyreceived ) ] ) ); >- >- is( scalar @$order_loop, 0, 'order_loop is empty' ); >- is( $total_qty, 0, 'total_qty' ); >- is( $total_price, 0, 'total_price' ); >- is( $total_qtyreceived, 0, 'total_qtyreceived' ); >- >- >-} >- >-=head3 one_order >- >-=cut >- >-my $INVOICE = "1234-56 AB"; >-sub one_order : Test( 55 ) { >- my $self = shift; >- >- my ( $basketno, $ordernumber ) = $self->create_new_basket(invoice => $INVOICE); >- ok( $basketno, "basketno is $basketno" ); >- ok( $ordernumber, "ordernumber is $ordernumber" ); >- >- # No arguments fetches no history. >- { >- my ( $order_loop, $total_qty, $total_price, $total_qtyreceived) = eval { GetHistory() }; >- # diag( Data::Dumper->Dump( [ $order_loop, $total_qty, $total_price, $total_qtyreceived ], [ qw( order_loop total_qty total_price total_qtyreceived ) ] ) ); >- >- is( $order_loop, undef, 'order_loop is empty' ); >- } >- >- my $bibliodata = GetBiblioData( $self->{'biblios'}[0] ); >- ok( $bibliodata->{'title'}, 'the biblio has a title' ) >- or diag( Data::Dumper->Dump( [ $bibliodata ], [ 'bibliodata' ] ) ); >- >- # searching by title should find it. >- { >- my ( $order_loop, $total_qty, $total_price, $total_qtyreceived) = GetHistory( title => $bibliodata->{'title'} ); >- # diag( Data::Dumper->Dump( [ $order_loop, $total_qty, $total_price, $total_qtyreceived ], [ qw( order_loop total_qty total_price total_qtyreceived ) ] ) ); >- >- is( scalar @$order_loop, 1, 'order_loop searched by title' ); >- is( $total_qty, 1, 'total_qty searched by title' ); >- is( $total_price, 1, 'total_price searched by title' ); >- is( $total_qtyreceived, 0, 'total_qtyreceived searched by title' ); >- >- # diag( Data::Dumper->Dump( [ $order_loop ], [ 'order_loop' ] ) ); >- } >- >- # searching by isbn >- { >- my ( $order_loop, $total_qty, $total_price, $total_qtyreceived) = GetHistory( isbn => $bibliodata->{'isbn'} ); >- # diag( Data::Dumper->Dump( [ $order_loop, $total_qty, $total_price, $total_qtyreceived ], [ qw( order_loop total_qty total_price total_qtyreceived ) ] ) ); >- >- is( scalar @$order_loop, 1, 'order_loop searched by isbn' ); >- is( $total_qty, 1, 'total_qty searched by isbn' ); >- is( $total_price, 1, 'total_price searched by isbn' ); >- is( $total_qtyreceived, 0, 'total_qtyreceived searched by isbn' ); >- >- # diag( Data::Dumper->Dump( [ $order_loop ], [ 'order_loop' ] ) ); >- } >- >- # searching by ean >- { >- my ( $order_loop, $total_qty, $total_price, $total_qtyreceived) = GetHistory( ean => $bibliodata->{'ean'} ); >- # diag( Data::Dumper->Dump( [ $order_loop, $total_qty, $total_price, $total_qtyreceived ], [ qw( order_loop total_qty total_price total_qtyreceived ) ] ) ); >- >- is( scalar @$order_loop, 1, 'order_loop searched by ean' ); >- is( $total_qty, 1, 'total_qty searched by ean' ); >- is( $total_price, 1, 'total_price searched by ean' ); >- is( $total_qtyreceived, 0, 'total_qtyreceived searched by ean' ); >- >- # diag( Data::Dumper->Dump( [ $order_loop ], [ 'order_loop' ] ) ); >- } >- >- >- # searching by basket number >- { >- my ( $order_loop, $total_qty, $total_price, $total_qtyreceived) = GetHistory( basket => $basketno ); >- # diag( Data::Dumper->Dump( [ $order_loop, $total_qty, $total_price, $total_qtyreceived ], [ qw( order_loop total_qty total_price total_qtyreceived ) ] ) ); >- >- is( scalar @$order_loop, 1, 'order_loop searched by basket no' ); >- is( $total_qty, 1, 'total_qty searched by basket no' ); >- is( $total_price, 1, 'total_price searched by basket no' ); >- is( $total_qtyreceived, 0, 'total_qtyreceived searched by basket no' ); >- >- # diag( Data::Dumper->Dump( [ $order_loop ], [ 'order_loop' ] ) ); >- } >- >- # searching by invoice number >- { >- my ( $order_loop, $total_qty, $total_price, $total_qtyreceived) = GetHistory( booksellerinvoicenumber => $INVOICE ); >- # diag( Data::Dumper->Dump( [ $order_loop, $total_qty, $total_price, $total_qtyreceived ], [ qw( order_loop total_qty total_price total_qtyreceived ) ] ) ); >- >- is( scalar @$order_loop, 1, 'order_loop searched by invoice no' ); >- is( $total_qty, 1, 'total_qty searched by invoice no' ); >- is( $total_price, 1, 'total_price searched by invoice no' ); >- is( $total_qtyreceived, 0, 'total_qtyreceived searched by invoice no' ); >- >- # diag( Data::Dumper->Dump( [ $order_loop ], [ 'order_loop' ] ) ); >- } >- >- # searching by author >- { >- my ( $order_loop, $total_qty, $total_price, $total_qtyreceived) = GetHistory( author => $bibliodata->{'author'} ); >- # diag( Data::Dumper->Dump( [ $order_loop, $total_qty, $total_price, $total_qtyreceived ], [ qw( order_loop total_qty total_price total_qtyreceived ) ] ) ); >- >- is( scalar @$order_loop, 1, 'order_loop searched by author' ); >- is( $total_qty, 1, 'total_qty searched by author' ); >- is( $total_price, 1, 'total_price searched by author' ); >- is( $total_qtyreceived, 0, 'total_qtyreceived searched by author' ); >- } >- >- # searching by name >- { >- # diag( Data::Dumper->Dump( [ $bibliodata ], [ 'bibliodata' ] ) ); >- >- my $bookseller = GetBookSellerFromId( $self->{'booksellerid'} ); >- ok( $bookseller->{'name'}, 'bookseller name' ) >- or diag( Data::Dumper->Dump( [ $bookseller ], [ 'bookseller' ] ) ); >- >- my ( $order_loop, $total_qty, $total_price, $total_qtyreceived) = GetHistory( name => $bookseller->{'name'} ); >- # diag( Data::Dumper->Dump( [ $order_loop, $total_qty, $total_price, $total_qtyreceived ], [ qw( order_loop total_qty total_price total_qtyreceived ) ] ) ); >- >- is( scalar @$order_loop, 1, 'order_loop searched by name' ); >- is( $total_qty, 1, 'total_qty searched by name' ); >- is( $total_price, 1, 'total_price searched by name' ); >- is( $total_qtyreceived, 0, 'total_qtyreceived searched by name' ); >- } >- >- # searching by from_date >- { >- my $tomorrow = $self->tomorrow(); >- # diag( "tomorrow is $tomorrow" ); >- >- my ( $order_loop, $total_qty, $total_price, $total_qtyreceived) = GetHistory( to_placed_on => $tomorrow ); >- # diag( Data::Dumper->Dump( [ $order_loop, $total_qty, $total_price, $total_qtyreceived ], [ qw( order_loop total_qty total_price total_qtyreceived ) ] ) ); >- >- is( scalar @$order_loop, 1, 'order_loop searched by to_date' ); >- is( $total_qty, 1, 'total_qty searched by to_date' ); >- is( $total_price, 1, 'total_price searched by to_date' ); >- is( $total_qtyreceived, 0, 'total_qtyreceived searched by to_date' ); >- } >- >- # searching by from_date >- { >- my $yesterday = $self->yesterday(); >- # diag( "yesterday was $yesterday" ); >- >- my ( $order_loop, $total_qty, $total_price, $total_qtyreceived) = GetHistory( from_placed_on => $yesterday ); >- # diag( Data::Dumper->Dump( [ $order_loop, $total_qty, $total_price, $total_qtyreceived ], [ qw( order_loop total_qty total_price total_qtyreceived ) ] ) ); >- >- is( scalar @$order_loop, 1, 'order_loop searched by from_date' ); >- is( $total_qty, 1, 'total_qty searched by from_date' ); >- is( $total_price, 1, 'total_price searched by from_date' ); >- is( $total_qtyreceived, 0, 'total_qtyreceived searched by from_date' ); >- } >- >- # set up some things necessary to make GetHistory use the IndependentBranches >- $self->enable_independant_branches(); >- >- # just search by title here, we need to search by something. >- { >- my ( $order_loop, $total_qty, $total_price, $total_qtyreceived) = GetHistory( title => $bibliodata->{'title'} ); >- # diag( Data::Dumper->Dump( [ $order_loop, $total_qty, $total_price, $total_qtyreceived ], [ qw( order_loop total_qty total_price total_qtyreceived ) ] ) ); >- >- is( scalar @$order_loop, 1, 'order_loop searched by title' ); >- is( $total_qty, 1, 'total_qty searched by title' ); >- is( $total_price, 1, 'total_price searched by title' ); >- is( $total_qtyreceived, 0, 'total_qtyreceived searched by title' ); >- >- # diag( Data::Dumper->Dump( [ $order_loop ], [ 'order_loop' ] ) ); >- } >- >- # reset that. >- $self->disable_independant_branches(); >- >- >- >- >-} >- >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Acquisition/GetLateOrders.pm b/t/db_dependent/lib/KohaTest/Acquisition/GetLateOrders.pm >deleted file mode 100644 >index cc7fdaa..0000000 >--- a/t/db_dependent/lib/KohaTest/Acquisition/GetLateOrders.pm >+++ /dev/null >@@ -1,106 +0,0 @@ >-package KohaTest::Acquisition::GetLateOrders; >-use base qw( KohaTest::Acquisition ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Acquisition; >-use C4::Context; >-use C4::Members; >- >-=head3 no_orders >- >-=cut >- >-sub no_orders : Test( 1 ) { >- my $self = shift; >- >- my @orders = GetLateOrders( 1 ); >- is( scalar @orders, 0, 'There are no orders, so we found 0.' ) >- or diag( Data::Dumper->Dump( [ \@orders ], [ 'orders' ] ) ); >- >-} >- >-=head3 one_order >- >-=cut >- >-sub one_order : Test( 29 ) { >- my $self = shift; >- >- my ( $basketid, $ordernumber ) = $self->create_new_basket(); >- ok( $basketid, 'a new basket was created' ); >- ok( $ordernumber, 'the basket has an order in it.' ); >- # we need this basket to be closed. >- CloseBasket( $basketid ); >- >- my @orders = GetLateOrders( 0 ); >- >- { >- my @orders = GetLateOrders( 0 ); >- is( scalar @orders, 1, 'An order closed today is 0 days late.' ) >- or diag( Data::Dumper->Dump( [ \@orders ], [ 'orders' ] ) ); >- } >- { >- my @orders = GetLateOrders( 1 ); >- is( scalar @orders, 0, 'An order closed today is not 1 day late.' ) >- or diag( Data::Dumper->Dump( [ \@orders ], [ 'orders' ] ) ); >- } >- { >- my @orders = GetLateOrders( -1 ); >- is( scalar @orders, 1, 'an order closed today is -1 day late.' ) >- or diag( Data::Dumper->Dump( [ \@orders ], [ 'orders' ] ) ); >- } >- >- # provide some vendor information >- { >- my @orders = GetLateOrders( 0, $self->{'booksellerid'} ); >- is( scalar @orders, 1, 'We found this late order with the right supplierid.' ) >- or diag( Data::Dumper->Dump( [ \@orders ], [ 'orders' ] ) ); >- } >- { >- my @orders = GetLateOrders( 0, $self->{'booksellerid'} + 1 ); >- is( scalar @orders, 0, 'We found no late orders with the wrong supplierid.' ) >- or diag( Data::Dumper->Dump( [ \@orders ], [ 'orders' ] ) ); >- } >- >- # provide some branch information >- my $member = GetMember( borrowernumber=>$self->{'memberid'} ); >- # diag( Data::Dumper->Dump( [ $member ], [ 'member' ] ) ); >- { >- my @orders = GetLateOrders( 0, $self->{'booksellerid'}, $member->{'branchcode'} ); >- is( scalar @orders, 1, 'We found this late order with the right branchcode.' ) >- or diag( Data::Dumper->Dump( [ \@orders ], [ 'orders' ] ) ); >- } >- { >- my @orders = GetLateOrders( 0, $self->{'booksellerid'}, 'This is not the branch' ); >- is( scalar @orders, 0, 'We found no late orders with the wrong branchcode.' ) >- or diag( Data::Dumper->Dump( [ \@orders ], [ 'orders' ] ) ); >- } >- >- # set up some things necessary to make GetLateOrders use the IndependentBranches >- $self->enable_independant_branches(); >- >- { >- my @orders = GetLateOrders( 0, $self->{'booksellerid'}, $member->{'branchcode'} ); >- is( scalar @orders, 1, 'We found this late order with the right branchcode.' ) >- or diag( Data::Dumper->Dump( [ \@orders ], [ 'orders' ] ) ); >- } >- { >- my @orders = GetLateOrders( 0, $self->{'booksellerid'}, 'This is not the branch' ); >- is( scalar @orders, 0, 'We found no late orders with the wrong branchcode.' ) >- or diag( Data::Dumper->Dump( [ \@orders ], [ 'orders' ] ) ); >- } >- >- # reset that. >- $self->disable_independant_branches(); >- >-} >- >- >- >- >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Acquisition/GetParcel.pm b/t/db_dependent/lib/KohaTest/Acquisition/GetParcel.pm >deleted file mode 100644 >index 383ee1b..0000000 >--- a/t/db_dependent/lib/KohaTest/Acquisition/GetParcel.pm >+++ /dev/null >@@ -1,66 +0,0 @@ >-package KohaTest::Acquisition::GetParcel; >-use base qw( KohaTest::Acquisition ); >- >-use strict; >-use warnings; >- >-use Test::More; >-use Time::localtime; >- >-use C4::Acquisition; >- >-=head3 no_parcel >- >-at first, there should be no parcels for our bookseller. >- >-=cut >- >-sub no_parcel : Test( 1 ) { >- my $self = shift; >- >- my @parcel = GetParcel( $self->{'booksellerid'}, undef, undef ); >- is( scalar @parcel, 0, 'our new bookseller has no parcels' ) >- or diag( Data::Dumper->Dump( [ \@parcel ], [ 'parcel' ] ) ); >-} >- >-=head3 one_parcel >- >-we create an order, mark it as received, and then see if we can find >-it with GetParcel. >- >-=cut >- >-sub one_parcel : Test( 17 ) { >- my $self = shift; >- >- my $invoice = 123; # XXX what should this be? >- >- my $today = sprintf( '%04d-%02d-%02d', >- localtime->year() + 1900, >- localtime->mon() + 1, >- localtime->mday() ); >- my ( $basketno, $ordernumber ) = $self->create_new_basket(); >- >- ok( $basketno, "my basket number is $basketno" ); >- ok( $ordernumber, "my order number is $ordernumber" ); >- my $datereceived = ModReceiveOrder( $self->{'biblios'}[0], # biblionumber >- $ordernumber, # $ordernumber, >- undef, # $quantrec, >- undef, # $user, >- undef, # $cost, >- undef, # $ecost, >- $invoice, # $invoiceno, >- undef, # $freight, >- undef, # $rrp, >- $self->{'bookfundid'}, # $bookfund, >- $today, # $datereceived >- ); >- is( $datereceived, $today, "the parcel was received on $datereceived" ); >- >- my @parcel = GetParcel( $self->{'booksellerid'}, $invoice, $today ); >- is( scalar @parcel, 1, 'we found one (1) parcel.' ) >- or diag( Data::Dumper->Dump( [ \@parcel ], [ 'parcel' ] ) ); >- >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Acquisition/GetParcels.pm b/t/db_dependent/lib/KohaTest/Acquisition/GetParcels.pm >deleted file mode 100644 >index e0c815b..0000000 >--- a/t/db_dependent/lib/KohaTest/Acquisition/GetParcels.pm >+++ /dev/null >@@ -1,290 +0,0 @@ >-package KohaTest::Acquisition::GetParcels; >-use base qw( KohaTest::Acquisition ); >- >-use strict; >-use warnings; >- >-use Test::More; >-use Time::localtime; >- >-use C4::Acquisition; >- >-=head2 NOTE >- >-Please do not confuse this with the test suite for C4::Acquisition::GetParcel. >- >-=head3 no_parcels >- >-at first, there should be no parcels for our bookseller. >- >-=cut >- >-sub no_parcels : Test( 1 ) { >- my $self = shift; >- >- my @parcels = GetParcels( $self->{'booksellerid'}, # bookseller >- # order >- # code ( aqorders.booksellerinvoicenumber ) >- # datefrom >- # date to >- ); >- >- is( scalar @parcels, 0, 'our new bookseller has no parcels' ) >- or diag( Data::Dumper->Dump( [ \@parcels ], [ 'parcels' ] ) ); >-} >- >-=head3 one_parcel >- >-we create an order, mark it as received, and then see if we can find >-it with GetParcels. >- >-=cut >- >-sub one_parcel : Test( 19 ) { >- my $self = shift; >- >- my $invoice = 123; # XXX what should this be? >- my $today = sprintf( '%04d-%02d-%02d', >- localtime->year() + 1900, >- localtime->mon() + 1, >- localtime->mday() ); >- >- $self->create_order( authorizedby => 1, # XXX what should this be? >- invoice => $invoice, >- date => $today ); >- >- my @parcels = GetParcels( $self->{'booksellerid'}, # bookseller >- # order >- # code ( aqorders.booksellerinvoicenumber ) >- # datefrom >- # date to >- ); >- is( scalar @parcels, 1, 'we found one (1) parcel.' ) >- or diag( Data::Dumper->Dump( [ \@parcels ], [ 'parcels' ] ) ); >- >- my $thisparcel = shift( @parcels ); >- is( scalar ( keys( %$thisparcel ) ), 6, 'my parcel hashref has 6 keys' ) >- or diag( Data::Dumper->Dump( [ $thisparcel ], [ 'thisparcel' ] ) ); >- >- is( $thisparcel->{'datereceived'}, $today, 'datereceived' ); >- is( $thisparcel->{'biblio'}, 1, 'biblio' ); >- is( $thisparcel->{'booksellerinvoicenumber'}, $invoice, 'booksellerinvoicenumber' ); >- >- # diag( Data::Dumper->Dump( [ $thisparcel ], [ 'thisparcel' ] ) ); >- >-} >- >-=head3 two_parcels >- >-we create another order, mark it as received, and then see if we can find >-them all with GetParcels. >- >-=cut >- >-sub two_parcels : Test( 31 ) { >- my $self = shift; >- >- my $invoice = 1234; # XXX what should this be? >- my $today = sprintf( '%04d-%02d-%02d', >- localtime->year() + 1900, >- localtime->mon() + 1, >- localtime->mday() ); >- $self->create_order( authorizedby => 1, # XXX what should this be? >- invoice => $invoice, >- date => $today ); >- >- { >- # fetch them all and check that this one is last >- my @parcels = GetParcels( $self->{'booksellerid'}, # bookseller >- # order >- # code ( aqorders.booksellerinvoicenumber ) >- # datefrom >- # date to >- ); >- is( scalar @parcels, 2, 'we found two (2) parcels.' ) >- or diag( Data::Dumper->Dump( [ \@parcels ], [ 'parcels' ] ) ); >- >- my $thisparcel = pop( @parcels ); >- is( scalar ( keys( %$thisparcel ) ), 6, 'my parcel hashref has 6 keys' ) >- or diag( Data::Dumper->Dump( [ $thisparcel ], [ 'thisparcel' ] ) ); >- >- is( $thisparcel->{'datereceived'}, $today, 'datereceived' ); >- is( $thisparcel->{'biblio'}, 1, 'biblio' ); >- is( $thisparcel->{'booksellerinvoicenumber'}, $invoice, 'booksellerinvoicenumber' ); >- } >- >- { >- # fetch just one, by using the exact code >- my @parcels = GetParcels( $self->{'booksellerid'}, # bookseller >- undef, # order >- $invoice, # code ( aqorders.booksellerinvoicenumber ) >- undef, # datefrom >- undef, # date to >- ); >- is( scalar @parcels, 1, 'we found one (1) parcels.' ) >- or diag( Data::Dumper->Dump( [ \@parcels ], [ 'parcels' ] ) ); >- >- my $thisparcel = pop( @parcels ); >- is( scalar ( keys( %$thisparcel ) ), 6, 'my parcel hashref has 6 keys' ) >- or diag( Data::Dumper->Dump( [ $thisparcel ], [ 'thisparcel' ] ) ); >- >- is( $thisparcel->{'datereceived'}, $today, 'datereceived' ); >- is( $thisparcel->{'biblio'}, 1, 'biblio' ); >- is( $thisparcel->{'booksellerinvoicenumber'}, $invoice, 'booksellerinvoicenumber' ); >- } >- >- { >- # fetch them both by using code 123, which gets 123 and 1234 >- my @parcels = GetParcels( $self->{'booksellerid'}, # bookseller >- undef, # order >- '123', # code ( aqorders.booksellerinvoicenumber ) >- undef, # datefrom >- undef, # date to >- ); >- is( scalar @parcels, 2, 'we found 2 parcels.' ) >- or diag( Data::Dumper->Dump( [ \@parcels ], [ 'parcels' ] ) ); >- >- } >- >- { >- # fetch them both, and try to order them >- my @parcels = GetParcels( $self->{'booksellerid'}, # bookseller >- 'aqorders.booksellerinvoicenumber', # order >- undef, # code ( aqorders.booksellerinvoicenumber ) >- undef, # datefrom >- undef, # date to >- ); >- is( scalar @parcels, 2, 'we found 2 parcels.' ) >- or diag( Data::Dumper->Dump( [ \@parcels ], [ 'parcels' ] ) ); >- is( $parcels[0]->{'booksellerinvoicenumber'}, 123 ); >- is( $parcels[1]->{'booksellerinvoicenumber'}, 1234 ); >- >- } >- >- { >- # fetch them both, and try to order them, descending >- my @parcels = GetParcels( $self->{'booksellerid'}, # bookseller >- 'aqorders.booksellerinvoicenumber desc', # order >- undef, # code ( aqorders.booksellerinvoicenumber ) >- undef, # datefrom >- undef, # date to >- ); >- is( scalar @parcels, 2, 'we found 2 parcels.' ) >- or diag( Data::Dumper->Dump( [ \@parcels ], [ 'parcels' ] ) ); >- is( $parcels[0]->{'booksellerinvoicenumber'}, 1234 ); >- is( $parcels[1]->{'booksellerinvoicenumber'}, 123 ); >- >- } >- >- >- >- >- # diag( Data::Dumper->Dump( [ $thisparcel ], [ 'thisparcel' ] ) ); >- >-} >- >- >-=head3 z_several_parcels_with_different_dates >- >-we create an order, mark it as received, and then see if we can find >-it with GetParcels. >- >-=cut >- >-sub z_several_parcels_with_different_dates : Test( 44 ) { >- my $self = shift; >- >- my $authorizedby = 1; # XXX what should this be? >- >- my @inputs = ( { invoice => 10, >- date => sprintf( '%04d-%02d-%02d', >- 1950, >- localtime->mon() + 1, >- 10 ), # I'm using the invoice number as the day. >- }, >- { invoice => 15, >- date => sprintf( '%04d-%02d-%02d', >- 1950, >- localtime->mon() + 1, >- 15 ), # I'm using the invoice number as the day. >- }, >- { invoice => 20, >- date => sprintf( '%04d-%02d-%02d', >- 1950, >- localtime->mon() + 1, >- 20 ), # I'm using the invoice number as the day. >- }, >- ); >- >- foreach my $input ( @inputs ) { >- $self->create_order( authorizedby => $authorizedby, >- invoice => $input->{'invoice'}, >- date => $input->{'date'}, >- ); >- } >- >- my @parcels = GetParcels( $self->{'booksellerid'}, # bookseller >- undef, # order >- undef, # code ( aqorders.booksellerinvoicenumber ) >- sprintf( '%04d-%02d-%02d', >- 1950, >- localtime->mon() + 1, >- 10 ), # datefrom >- sprintf( '%04d-%02d-%02d', >- 1950, >- localtime->mon() + 1, >- 20 ), # dateto >- ); >- is( scalar @parcels, scalar @inputs, 'we found all of the parcels.' ) >- or diag( Data::Dumper->Dump( [ \@parcels ], [ 'parcels' ] ) ); >- >- @parcels = GetParcels( $self->{'booksellerid'}, # bookseller >- undef, # order >- undef, # code ( aqorders.booksellerinvoicenumber ) >- sprintf( '%04d-%02d-%02d', >- 1950, >- localtime->mon() + 1, >- 10 ), # datefrom >- sprintf( '%04d-%02d-%02d', >- 1950, >- localtime->mon() + 1, >- 16 ), # dateto >- ); >- is( scalar @parcels, scalar @inputs - 1, 'we found all of the parcels except one' ) >- or diag( Data::Dumper->Dump( [ \@parcels ], [ 'parcels' ] ) ); >- >- >- >- # diag( Data::Dumper->Dump( [ $thisparcel ], [ 'thisparcel' ] ) ); >- >-} >- >-sub create_order { >- my $self = shift; >- my %param = @_; >- $param{'authorizedby'} = 1 unless exists $param{'authorizedby'}; >- $param{'invoice'} = 1 unless exists $param{'invoice'}; >- $param{'date'} = sprintf( '%04d-%02d-%02d', >- localtime->year() + 1900, >- localtime->mon() + 1, >- localtime->mday() ) unless exists $param{'date'}; >- >- my ( $basketno, $ordernumber ) = $self->create_new_basket( %param ); >- >- my $datereceived = ModReceiveOrder( $self->{'biblios'}[0], # biblionumber >- $ordernumber, # $ordernumber, >- undef, # $quantrec, >- undef, # $user, >- undef, # $cost, >- undef, # $ecost, >- $param{'invoice'}, # $invoiceno, >- undef, # $freight, >- undef, # $rrp, >- $self->{'bookfundid'}, # $bookfund, >- $param{'date'}, # $datereceived >- ); >- is( $datereceived, $param{'date'}, "the parcel was received on $datereceived" ); >- >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Acquisition/GetPendingOrders.pm b/t/db_dependent/lib/KohaTest/Acquisition/GetPendingOrders.pm >deleted file mode 100644 >index cf4bb15..0000000 >--- a/t/db_dependent/lib/KohaTest/Acquisition/GetPendingOrders.pm >+++ /dev/null >@@ -1,82 +0,0 @@ >-package KohaTest::Acquisition::GetPendingOrders; >-use base qw( KohaTest::Acquisition ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Acquisition; >- >-=head3 no_orders >- >-at first, there should be no orders for our bookseller. >- >-=cut >- >-sub no_orders : Test( 1 ) { >- my $self = shift; >- >- my $orders = GetPendingOrders( $self->{'booksellerid'} ); >- is( scalar @$orders, 0, 'our new bookseller has no pending orders' ) >- or diag( Data::Dumper->Dump( [ $orders ], [ 'orders' ] ) ); >-} >- >-=head3 new_order >- >-we make an order, then see if it shows up in the pending orders >- >-=cut >- >-sub one_new_order : Test( 49 ) { >- my $self = shift; >- >- my ( $basketno, $ordernumber ) = $self->create_new_basket(); >- >- ok( $basketno, "basketno is $basketno" ); >- ok( $ordernumber, "ordernumber is $ordernumber" ); >- >- my $orders = GetPendingOrders( $self->{'booksellerid'} ); >- is( scalar @$orders, 1, 'we successfully entered one order.' ); >- >- my @expectedfields = qw( basketno >- biblioitemnumber >- biblionumber >- booksellerinvoicenumber >- budgetdate >- cancelledby >- closedate >- creationdate >- currency >- datecancellationprinted >- datereceived >- ecost >- entrydate >- firstname >- freight >- gst >- listprice >- notes >- ordernumber >- purchaseordernumber >- quantity >- quantityreceived >- rrp >- serialid >- sort1 >- sort2 >- subscription >- supplierreference >- surname >- timestamp >- title >- totalamount >- unitprice ); >- my $firstorder = $orders->[0]; >- for my $field ( @expectedfields ) { >- ok( exists( $firstorder->{ $field } ), "This order has a $field field" ); >- } >- >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Acquisition/NewOrder.pm b/t/db_dependent/lib/KohaTest/Acquisition/NewOrder.pm >deleted file mode 100644 >index 972cde2..0000000 >--- a/t/db_dependent/lib/KohaTest/Acquisition/NewOrder.pm >+++ /dev/null >@@ -1,108 +0,0 @@ >-package KohaTest::Acquisition::NewOrder; >-use base qw( KohaTest::Acquisition ); >- >-use strict; >-use warnings; >- >-use Test::More; >-use Time::localtime; >- >-use C4::Acquisition; >- >-=head3 new_order_no_budget >- >-If we make a new order and don't pass in a budget date, it defaults to >-today. >- >-=cut >- >-sub new_order_no_budget : Test( 4 ) { >- my $self = shift; >- >- my $authorizedby = 1; # XXX what should this be? >- my $invoice = 123; # XXX what should this be? >- my $today = sprintf( '%04d-%02d-%02d', >- localtime->year() + 1900, >- localtime->mon() + 1, >- localtime->mday() ); >- my ( $basketno, $ordernumber ) = NewOrder( undef, # $basketno, >- 1, # $bibnum, >- undef, # $title, >- undef, # $quantity, >- undef, # $listprice, >- $self->{'booksellerid'}, # $booksellerid, >- $authorizedby, # $authorisedby, >- undef, # $notes, >- $self->{'bookfundid'}, # $bookfund, >- undef, # $bibitemnum, >- undef, # $rrp, >- undef, # $ecost, >- undef, # $gst, >- undef, # $budget, >- undef, # $cost, >- undef, # $sub, >- $invoice, # $invoice, >- undef, # $sort1, >- undef, # $sort2, >- undef, # $purchaseorder, >- undef, # $branchcode >- ); >- ok( $basketno, "my basket number is $basketno" ); >- ok( $ordernumber, "my order number is $ordernumber" ); >- >- my $order = GetOrder( $ordernumber ); >- is( $order->{'ordernumber'}, $ordernumber, 'got the right order' ) >- or diag( Data::Dumper->Dump( [ $order ], [ 'order' ] ) ); >- >- is( $order->{'budgetdate'}, $today, "the budget date is $today" ); >-} >- >-=head3 new_order_set_budget >- >-Let's set the budget date of this new order. It actually pretty much >-only pays attention to the current month and year. >- >-=cut >- >-sub new_order_set_budget : Test( 4 ) { >- my $self = shift; >- >- my $authorizedby = 1; # XXX what should this be? >- my $invoice = 123; # XXX what should this be? >- my $today = sprintf( '%04d-%02d-%02d', >- localtime->year() + 1900, >- localtime->mon() + 1, >- localtime->mday() ); >- my ( $basketno, $ordernumber ) = NewOrder( undef, # $basketno, >- 1, # $bibnum, >- undef, # $title, >- undef, # $quantity, >- undef, # $listprice, >- $self->{'booksellerid'}, # $booksellerid, >- $authorizedby, # $authorisedby, >- undef, # $notes, >- $self->{'bookfundid'}, # $bookfund, >- undef, # $bibitemnum, >- undef, # $rrp, >- undef, # $ecost, >- undef, # $gst, >- 'does not matter, just not undef', # $budget, >- undef, # $cost, >- undef, # $sub, >- $invoice, # $invoice, >- undef, # $sort1, >- undef, # $sort2, >- undef, # $purchaseorder, >- undef, # $branchcode >- ); >- ok( $basketno, "my basket number is $basketno" ); >- ok( $ordernumber, "my order number is $ordernumber" ); >- >- my $order = GetOrder( $ordernumber ); >- is( $order->{'ordernumber'}, $ordernumber, 'got the right order' ) >- or diag( Data::Dumper->Dump( [ $order ], [ 'order' ] ) ); >- >- like( $order->{'budgetdate'}, qr(^2\d\d\d-07-01$), "the budget date ($order->{'budgetdate'}) is a July 1st." ); >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/AuthoritiesMarc.pm b/t/db_dependent/lib/KohaTest/AuthoritiesMarc.pm >deleted file mode 100644 >index 4938ccf..0000000 >--- a/t/db_dependent/lib/KohaTest/AuthoritiesMarc.pm >+++ /dev/null >@@ -1,40 +0,0 @@ >-package KohaTest::AuthoritiesMarc; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::AuthoritiesMarc; >-sub testing_class { 'C4::AuthoritiesMarc' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( GetAuthMARCFromKohaField >- SearchAuthorities >- CountUsage >- CountUsageChildren >- GetAuthTypeCode >- GetTagsLabels >- AddAuthority >- DelAuthority >- ModAuthority >- GetAuthorityXML >- GetAuthority >- GetAuthType >- FindDuplicateAuthority >- BuildSummary >- BuildUnimarcHierarchies >- BuildUnimarcHierarchy >- GetHeaderAuthority >- AddAuthorityTrees >- merge >- get_auth_type_location >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Biblio.pm b/t/db_dependent/lib/KohaTest/Biblio.pm >deleted file mode 100644 >index e581a3d..0000000 >--- a/t/db_dependent/lib/KohaTest/Biblio.pm >+++ /dev/null >@@ -1,66 +0,0 @@ >-package KohaTest::Biblio; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Biblio; >-sub testing_class { 'C4::Biblio' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( >- AddBiblio >- ModBiblio >- ModBiblioframework >- DelBiblio >- LinkBibHeadingsToAuthorities >- GetBiblioData >- GetBiblioItemData >- GetBiblioItemByBiblioNumber >- GetBiblioFromItemNumber >- GetBiblio >- GetBiblioItemInfosOf >- GetMarcStructure >- GetUsedMarcStructure >- GetMarcFromKohaField >- GetMarcBiblio >- GetXmlBiblio >- GetAuthorisedValueDesc >- GetMarcNotes >- GetMarcSubjects >- GetMarcAuthors >- GetMarcUrls >- GetMarcSeries >- GetFrameworkCode >- GetPublisherNameFromIsbn >- TransformKohaToMarc >- TransformHtmlToXml >- TransformHtmlToMarc >- TransformMarcToKoha >- _get_inverted_marc_field_map >- _disambiguate >- get_koha_field_from_marc >- TransformMarcToKohaOneField >- ModZebra >- _find_value >- _koha_marc_update_bib_ids >- _koha_marc_update_biblioitem_cn_sort >- _koha_add_biblio >- _koha_modify_biblio >- _koha_modify_biblioitem_nonmarc >- _koha_add_biblioitem >- _koha_delete_biblio >- _koha_delete_biblioitems >- ModBiblioMarc >- get_biblio_authorised_values >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >- >diff --git a/t/db_dependent/lib/KohaTest/Biblio/ModBiblio.pm b/t/db_dependent/lib/KohaTest/Biblio/ModBiblio.pm >deleted file mode 100644 >index 5b29ea8..0000000 >--- a/t/db_dependent/lib/KohaTest/Biblio/ModBiblio.pm >+++ /dev/null >@@ -1,154 +0,0 @@ >-package KohaTest::Biblio::ModBiblio; >-use base qw( KohaTest::Biblio ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Biblio; >-use C4::Items; >- >-=head2 STARTUP METHODS >- >-These get run once, before the main test methods in this module >- >-=head3 add_bib_to_modify >- >-=cut >- >-sub add_bib_to_modify : Test( startup => 3 ) { >- my $self = shift; >- >- my $bib = MARC::Record->new(); >- $bib->leader(' ngm a22 7a 4500'); >- $bib->append_fields( >- MARC::Field->new('100', ' ', ' ', a => 'Moffat, Steven'), >- MARC::Field->new('245', ' ', ' ', a => 'Silence in the library'), >- ); >- >- my ($bibnum, $bibitemnum) = AddBiblio($bib, ''); >- $self->{'bib_to_modify'} = $bibnum; >- >- # add an item >- my ($item_bibnum, $item_bibitemnum, $itemnumber) = AddItem({ homebranch => 'CPL', holdingbranch => 'CPL' } , $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"); >- >- $self->reindex_marc(); >- >- my $marc = $self->fetch_bib($bibnum); >- $self->sort_item_and_bibnumber_fields($marc); >- $self->{'bib_to_modify_formatted'} = $marc->as_formatted(); # simple way to compare later >-} >- >-=head2 TEST METHODS >- >-standard test methods >- >-=head3 bug_2297 >- >-Regression test for bug 2297 (saving a subscription duplicates MARC item fields) >- >-=cut >- >-sub bug_2297 : Test( 5 ) { >- my $self = shift; >- >- my $bibnum = $self->{'bib_to_modify'}; >- my $marc = $self->fetch_bib($bibnum); >- $self->check_item_count($marc, 1); >- >- ModBiblio($marc, $bibnum, ''); # no change made to bib >- >- my $modified_marc = $self->fetch_bib($bibnum); >- diag "checking item field count after null modification"; >- $self->check_item_count($modified_marc, 1); >- >- $self->sort_item_and_bibnumber_fields($modified_marc); >- is($modified_marc->as_formatted(), $self->{'bib_to_modify_formatted'}, "no change to bib after null modification"); >-} >- >-=head2 HELPER METHODS >- >-These methods are used by other test methods, but >-are not meant to be called directly. >- >-=cut >- >-=head3 fetch_bib >- >-=cut >- >-sub fetch_bib { # +1 to test count per call >- my $self = shift; >- my $bibnum = shift; >- >- my $marc = GetMarcBiblio($bibnum); >- ok(defined($marc), "retrieved bib record $bibnum"); >- >- return $marc; >-} >- >-=head3 check_item_count >- >-=cut >- >-sub check_item_count { # +1 to test count per call >- my $self = shift; >- my $marc = shift; >- my $expected_items = shift; >- >- my ($itemtag, $itemsubfield) = GetMarcFromKohaField("items.itemnumber", ''); >- my @item_fields = $marc->field($itemtag); >- cmp_ok(scalar(@item_fields), "==", $expected_items, "exactly one item field"); >-} >- >-=head3 sort_item_and_bibnumber_fields >- >-This method sorts the field containing the embedded item data >-and the bibnumber - ModBiblio(), AddBiblio(), and ModItem() do >-not guarantee that these fields will be sorted in tag order. >- >-=cut >- >-sub sort_item_and_bibnumber_fields { >- my $self = shift; >- my $marc = shift; >- >- my ($itemtag, $itemsubfield) = GetMarcFromKohaField("items.itemnumber", ''); >- my ($bibnumtag, $bibnumsubfield) = GetMarcFromKohaField("biblio.biblionumber", ''); >- >- my @item_fields = (); >- foreach my $field ($marc->field($itemtag)) { >- push @item_fields, $field; >- $marc->delete_field($field); >- } >- $marc->insert_fields_ordered(@item_fields) if scalar(@item_fields);; >- >- my @bibnum_fields = (); >- foreach my $field ($marc->field($bibnumtag)) { >- push @bibnum_fields, $field; >- $marc->delete_field($field); >- } >- $marc->insert_fields_ordered(@bibnum_fields) if scalar(@bibnum_fields); >- >-} >- >-=head2 SHUTDOWN METHODS >- >-These get run once, after the main test methods in this module >- >-=head3 shutdown_clean_object >- >-=cut >- >-sub shutdown_clean_object : Test( shutdown => 0 ) { >- my $self = shift; >- >- delete $self->{'bib_to_modify'}; >- delete $self->{'bib_to_modify_formatted'}; >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Biblio/get_biblio_authorised_values.pm b/t/db_dependent/lib/KohaTest/Biblio/get_biblio_authorised_values.pm >deleted file mode 100644 >index aab03a0..0000000 >--- a/t/db_dependent/lib/KohaTest/Biblio/get_biblio_authorised_values.pm >+++ /dev/null >@@ -1,48 +0,0 @@ >-package KohaTest::Biblio::get_biblio_authorised_values; >-use base qw( KohaTest::Biblio ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Biblio; >- >-=head2 STARTUP METHODS >- >-These get run once, before the main test methods in this module >- >-=head3 insert_test_data >- >-=cut >- >-sub insert_test_data : Test( startup => 71 ) { >- my $self = shift; >- >- # I'm going to add a bunch of biblios so that I can search for them. >- $self->add_biblios( count => 10, >- add_items => 1 ); >- >- >-} >- >-=head2 TEST METHODS >- >-standard test methods >- >-=head3 basic_test >- >-basic usage. >- >-=cut >- >-sub basic_test : Test( 1 ) { >- my $self = shift; >- >- ok( $self->{'biblios'}[0], 'we have a biblionumber' ); >- my $authorised_values = C4::Biblio::get_biblio_authorised_values( $self->{'biblios'}[0] ); >- diag( Data::Dumper->Dump( [ $authorised_values ], [ 'authorised_values' ] ) ); >- >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Branch.pm b/t/db_dependent/lib/KohaTest/Branch.pm >deleted file mode 100644 >index c526d99..0000000 >--- a/t/db_dependent/lib/KohaTest/Branch.pm >+++ /dev/null >@@ -1,35 +0,0 @@ >-package KohaTest::Branch; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Branch; >-sub testing_class { 'C4::Branch' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( GetBranches >- GetBranchName >- ModBranch >- GetBranchCategory >- GetBranchCategories >- GetCategoryTypes >- GetBranch >- GetBranchDetail >- GetBranchesInCategory >- GetBranchInfo >- DelBranch >- ModBranchCategoryInfo >- DelBranchCategory >- CheckBranchCategorycode >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >- >diff --git a/t/db_dependent/lib/KohaTest/Branch/GetBranches.pm b/t/db_dependent/lib/KohaTest/Branch/GetBranches.pm >deleted file mode 100644 >index 1dc5d0f..0000000 >--- a/t/db_dependent/lib/KohaTest/Branch/GetBranches.pm >+++ /dev/null >@@ -1,41 +0,0 @@ >-package KohaTest::Branch::GetBranches; >-use base qw( KohaTest::Branch ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Branch; >- >-=head2 STARTUP METHODS >- >-These get run once, before the main test methods in this module >- >-=cut >- >-=head2 TEST METHODS >- >-standard test methods >- >-=head3 onlymine >- >- When you pass in something true to GetBranches, it limits the >- response to only your branch. >- >-=cut >- >-sub onlymine : Test( 4 ) { >- my $self = shift; >- >- # C4::Branch::GetBranches uses this variable, so make sure it exists. >- ok( C4::Context->userenv->{'branch'}, 'we have a branch' ); >- my $branches = C4::Branch::GetBranches( 'onlymine' ); >- # diag( Data::Dumper->Dump( [ $branches ], [ 'branches' ] ) ); >- is( scalar( keys %$branches ), 1, 'one key for our branch only' ); >- ok( exists $branches->{ C4::Context->userenv->{'branch'} }, 'my branch was returned' ); >- is( $branches->{ C4::Context->userenv->{'branch'} }->{'branchcode'}, C4::Context->userenv->{'branch'}, 'branchcode' ); >- >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Breeding.pm b/t/db_dependent/lib/KohaTest/Breeding.pm >deleted file mode 100644 >index d098ae5..0000000 >--- a/t/db_dependent/lib/KohaTest/Breeding.pm >+++ /dev/null >@@ -1,23 +0,0 @@ >-package KohaTest::Breeding; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Breeding; >-sub testing_class { 'C4::Breeding' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( ImportBreeding >- BreedingSearch >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >- >diff --git a/t/db_dependent/lib/KohaTest/Calendar.pm b/t/db_dependent/lib/KohaTest/Calendar.pm >deleted file mode 100644 >index 8b1cda7..0000000 >--- a/t/db_dependent/lib/KohaTest/Calendar.pm >+++ /dev/null >@@ -1,34 +0,0 @@ >-package KohaTest::Calendar; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Calendar; >-sub testing_class { 'C4::Calendar' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( new >- get_week_days_holidays >- get_day_month_holidays >- get_exception_holidays >- get_single_holidays >- insert_week_day_holiday >- insert_day_month_holiday >- insert_single_holiday >- insert_exception_holiday >- delete_holiday >- isHoliday >- addDate >- daysBetween >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >- >diff --git a/t/db_dependent/lib/KohaTest/Calendar/New.pm b/t/db_dependent/lib/KohaTest/Calendar/New.pm >deleted file mode 100644 >index 745366b..0000000 >--- a/t/db_dependent/lib/KohaTest/Calendar/New.pm >+++ /dev/null >@@ -1,186 +0,0 @@ >-package KohaTest::Calendar::New; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Calendar; >-sub testing_class { 'C4::Calendar' }; >- >- >-=head2 STARTUP METHODS >- >-These get run once, before the main test methods in this module >- >-=cut >- >-=head2 TEST METHODS >- >-standard test methods >- >-=head3 instantiation >- >- just test to see if I can instantiate an object >- >-=cut >- >-sub instantiation : Test( 14 ) { >- my $self = shift; >- >- my $calendar = C4::Calendar->new( branchcode => '' ); >- isa_ok( $calendar, 'C4::Calendar' ); >- # diag( Data::Dumper->Dump( [ $calendar ], [ 'calendar' ] ) ); >- >- ok( exists $calendar->{'day_month_holidays'}, 'day_month_holidays' ); >- ok( exists $calendar->{'single_holidays'}, 'single_holidays' ); >- ok( exists $calendar->{'week_days_holidays'}, 'week_days_holidays' ); >- ok( exists $calendar->{'exception_holidays'}, 'exception_holidays' ); >- >- # sample data has Sundays as a holiday >- ok( exists $calendar->{'week_days_holidays'}->{'0'} ); >- is( $calendar->{'week_days_holidays'}->{'0'}->{'title'}, '', 'Sunday title' ); >- is( $calendar->{'week_days_holidays'}->{'0'}->{'description'}, 'Sundays', 'Sunday description' ); >- >- # sample data has Christmas as a holiday >- ok( exists $calendar->{'day_month_holidays'}->{'12/25'} ); >- is( $calendar->{'day_month_holidays'}->{'12/25'}->{'title'}, '', 'Christmas title' ); >- is( $calendar->{'day_month_holidays'}->{'12/25'}->{'description'}, 'Christmas', 'Christmas description' ); >- >- # sample data has New Year's Day as a holiday >- ok( exists $calendar->{'day_month_holidays'}->{'1/1'} ); >- is( $calendar->{'day_month_holidays'}->{'1/1'}->{'title'}, '', 'New Year title' ); >- is( $calendar->{'day_month_holidays'}->{'1/1'}->{'description'}, q(New Year's Day), 'New Year description' ); >- >-} >- >-sub week_day_holidays : Test( 8 ) { >- my $self = shift; >- >- my $calendar = C4::Calendar->new( branchcode => '' ); >- isa_ok( $calendar, 'C4::Calendar' ); >- # diag( Data::Dumper->Dump( [ $calendar ], [ 'calendar' ] ) ); >- >- ok( exists $calendar->{'week_days_holidays'}, 'week_days_holidays' ); >- >- my %new_holiday = ( weekday => 1, >- title => 'example week_day_holiday', >- description => 'This is an example week_day_holiday used for testing' ); >- my $new_calendar = $calendar->insert_week_day_holiday( %new_holiday ); >- >- # the calendar object returned from insert_week_day_holiday should be updated >- isa_ok( $new_calendar, 'C4::Calendar' ); >- is( $new_calendar->{'week_days_holidays'}->{ $new_holiday{'weekday'} }->{'title'}, $new_holiday{'title'}, 'title' ); >- is( $new_calendar->{'week_days_holidays'}->{ $new_holiday{'weekday'} }->{'description'}, $new_holiday{'description'}, 'description' ); >- >- # new calendar objects should have the newly inserted holiday. >- my $refreshed_calendar = C4::Calendar->new( branchcode => '' ); >- isa_ok( $refreshed_calendar, 'C4::Calendar' ); >- # diag( Data::Dumper->Dump( [ $calendar ], [ 'calendar' ] ) ); >- is( $new_calendar->{'week_days_holidays'}->{ $new_holiday{'weekday'} }->{'title'}, $new_holiday{'title'}, 'title' ); >- is( $new_calendar->{'week_days_holidays'}->{ $new_holiday{'weekday'} }->{'description'}, $new_holiday{'description'}, 'description' ); >- >-} >- >- >-sub day_month_holidays : Test( 8 ) { >- my $self = shift; >- >- my $calendar = C4::Calendar->new( branchcode => '' ); >- isa_ok( $calendar, 'C4::Calendar' ); >- # diag( Data::Dumper->Dump( [ $calendar ], [ 'calendar' ] ) ); >- >- ok( exists $calendar->{'day_month_holidays'}, 'day_month_holidays' ); >- >- my %new_holiday = ( day => 4, >- month => 5, >- title => 'example day_month_holiday', >- description => 'This is an example day_month_holiday used for testing' ); >- my $new_calendar = $calendar->insert_day_month_holiday( %new_holiday ); >- >- # the calendar object returned from insert_week_day_holiday should be updated >- isa_ok( $new_calendar, 'C4::Calendar' ); >- my $mmdd = sprintf('%s/%s', $new_holiday{'month'}, $new_holiday{'day'} ) ; >- is( $new_calendar->{'day_month_holidays'}->{ $mmdd }->{'title'}, $new_holiday{'title'}, 'title' ); >- is( $new_calendar->{'day_month_holidays'}->{ $mmdd }->{'description'}, $new_holiday{'description'}, 'description' ); >- >- # new calendar objects should have the newly inserted holiday. >- my $refreshed_calendar = C4::Calendar->new( branchcode => '' ); >- isa_ok( $refreshed_calendar, 'C4::Calendar' ); >- # diag( Data::Dumper->Dump( [ $calendar ], [ 'calendar' ] ) ); >- is( $new_calendar->{'day_month_holidays'}->{ $mmdd }->{'title'}, $new_holiday{'title'}, 'title' ); >- is( $new_calendar->{'day_month_holidays'}->{ $mmdd }->{'description'}, $new_holiday{'description'}, 'description' ); >- >-} >- >- >- >-sub exception_holidays : Test( 8 ) { >- my $self = shift; >- >- my $calendar = C4::Calendar->new( branchcode => '' ); >- isa_ok( $calendar, 'C4::Calendar' ); >- # diag( Data::Dumper->Dump( [ $calendar ], [ 'calendar' ] ) ); >- >- ok( exists $calendar->{'exception_holidays'}, 'exception_holidays' ); >- >- my %new_holiday = ( day => 4, >- month => 5, >- year => 2010, >- title => 'example exception_holiday', >- description => 'This is an example exception_holiday used for testing' ); >- my $new_calendar = $calendar->insert_exception_holiday( %new_holiday ); >- # diag( Data::Dumper->Dump( [ $new_calendar ], [ 'newcalendar' ] ) ); >- >- # the calendar object returned from insert_week_day_holiday should be updated >- isa_ok( $new_calendar, 'C4::Calendar' ); >- my $yyyymmdd = sprintf('%s/%s/%s', $new_holiday{'year'}, $new_holiday{'month'}, $new_holiday{'day'} ) ; >- is( $new_calendar->{'exception_holidays'}->{ $yyyymmdd }->{'title'}, $new_holiday{'title'}, 'title' ); >- is( $new_calendar->{'exception_holidays'}->{ $yyyymmdd }->{'description'}, $new_holiday{'description'}, 'description' ); >- >- # new calendar objects should have the newly inserted holiday. >- my $refreshed_calendar = C4::Calendar->new( branchcode => '' ); >- isa_ok( $refreshed_calendar, 'C4::Calendar' ); >- # diag( Data::Dumper->Dump( [ $calendar ], [ 'calendar' ] ) ); >- is( $new_calendar->{'exception_holidays'}->{ $yyyymmdd }->{'title'}, $new_holiday{'title'}, 'title' ); >- is( $new_calendar->{'exception_holidays'}->{ $yyyymmdd }->{'description'}, $new_holiday{'description'}, 'description' ); >- >-} >- >- >-sub single_holidays : Test( 8 ) { >- my $self = shift; >- >- my $calendar = C4::Calendar->new( branchcode => '' ); >- isa_ok( $calendar, 'C4::Calendar' ); >- # diag( Data::Dumper->Dump( [ $calendar ], [ 'calendar' ] ) ); >- >- ok( exists $calendar->{'single_holidays'}, 'single_holidays' ); >- >- my %new_holiday = ( day => 4, >- month => 5, >- year => 2011, >- title => 'example single_holiday', >- description => 'This is an example single_holiday used for testing' ); >- my $new_calendar = $calendar->insert_single_holiday( %new_holiday ); >- # diag( Data::Dumper->Dump( [ $new_calendar ], [ 'newcalendar' ] ) ); >- >- # the calendar object returned from insert_week_day_holiday should be updated >- isa_ok( $new_calendar, 'C4::Calendar' ); >- my $yyyymmdd = sprintf('%s/%s/%s', $new_holiday{'year'}, $new_holiday{'month'}, $new_holiday{'day'} ) ; >- is( $new_calendar->{'single_holidays'}->{ $yyyymmdd }->{'title'}, $new_holiday{'title'}, 'title' ); >- is( $new_calendar->{'single_holidays'}->{ $yyyymmdd }->{'description'}, $new_holiday{'description'}, 'description' ); >- >- # new calendar objects should have the newly inserted holiday. >- my $refreshed_calendar = C4::Calendar->new( branchcode => '' ); >- isa_ok( $refreshed_calendar, 'C4::Calendar' ); >- # diag( Data::Dumper->Dump( [ $calendar ], [ 'calendar' ] ) ); >- is( $new_calendar->{'single_holidays'}->{ $yyyymmdd }->{'title'}, $new_holiday{'title'}, 'title' ); >- is( $new_calendar->{'single_holidays'}->{ $yyyymmdd }->{'description'}, $new_holiday{'description'}, 'description' ); >- >-} >- >- >-1; >- >diff --git a/t/db_dependent/lib/KohaTest/Category.pm b/t/db_dependent/lib/KohaTest/Category.pm >deleted file mode 100644 >index 3febfda..0000000 >--- a/t/db_dependent/lib/KohaTest/Category.pm >+++ /dev/null >@@ -1,23 +0,0 @@ >-package KohaTest::Category; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Category; >-sub testing_class { 'C4::Category' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( >- new >- all >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Circulation.pm b/t/db_dependent/lib/KohaTest/Circulation.pm >deleted file mode 100644 >index 2ec90b2..0000000 >--- a/t/db_dependent/lib/KohaTest/Circulation.pm >+++ /dev/null >@@ -1,144 +0,0 @@ >-package KohaTest::Circulation; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Circulation; >-sub testing_class { 'C4::Circulation' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( barcodedecode >- decode >- transferbook >- TooMany >- itemissues >- CanBookBeIssued >- AddIssue >- GetLoanLength >- GetIssuingRule >- GetBranchBorrowerCircRule >- AddReturn >- MarkIssueReturned >- _FixOverduesOnReturn >- _FixAccountForLostAndReturned >- GetItemIssue >- GetItemIssues >- GetBiblioIssues >- GetUpcomingDueIssues >- CanBookBeRenewed >- AddRenewal >- GetRenewCount >- GetIssuingCharges >- AddIssuingCharge >- GetTransfers >- GetTransfersFromTo >- DeleteTransfer >- AnonymiseIssueHistory >- updateWrongTransfer >- UpdateHoldingbranch >- CalcDateDue >- CheckValidDatedue >- CheckRepeatableHolidays >- CheckSpecialHolidays >- CheckRepeatableSpecialHolidays >- CheckValidBarcode >- ReturnLostItem >- ProcessOfflinePayment >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-=head3 setup_add_biblios >- >-everything in the C4::Circulation really requires items, so let's do this in the setup phase. >- >-=cut >- >-sub setup_add_biblios : Tests( setup => 8 ) { >- my $self = shift; >- >- # we want to use a fresh batch of items, so clear these lists: >- delete $self->{'items'}; >- delete $self->{'biblios'}; >- >- $self->add_biblios( add_items => 1 ); >-} >- >- >-=head3 checkout_first_item >- >-named parameters: >- borrower => borrower hashref, computed from $self->{'memberid'} if not given >- barcode => item barcode, barcode of $self->{'items'}[0] if not given >- issuedate => YYYY-MM-DD of date to mark issue checked out. defaults to today. >- >-=cut >- >-sub checkout_first_item { >- my $self = shift; >- my $params = shift; >- >- # get passed in borrower, or default to the one in $self. >- my $borrower = $params->{'borrower'}; >- if ( ! defined $borrower ) { >- my $borrowernumber = $self->{'memberid'}; >- $borrower = C4::Members::GetMemberDetails( $borrowernumber ); >- } >- >- # get the barcode passed in, or default to the first one in the items list >- my $barcode = $params->{'barcode'}; >- if ( ! defined $barcode ) { >- return unless $self->{'items'}[0]{'itemnumber'}; >- $barcode = $self->get_barcode_from_itemnumber( $self->{'items'}[0]{'itemnumber'} ); >- } >- >- # get issuedate from parameters. Default to undef, which will be interpreted as today >- my $issuedate = $params->{'issuedate'}; >- >- my ( $issuingimpossible, $needsconfirmation ) = C4::Circulation::CanBookBeIssued( $borrower, $barcode ); >- >- my $datedue = C4::Circulation::AddIssue( >- $borrower, # borrower >- $barcode, # barcode >- undef, # datedue >- undef, # cancelreserve >- $issuedate # issuedate >- ); >- >- my $issues = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} ); >- >- return $issues->{'date_due'}; >-} >- >-=head3 get_barcode_from_itemnumber >- >-pass in an itemnumber, returns a barcode. >- >-Should this get moved up to KohaTest.pm? Or, is there a better alternative in C4? >- >-=cut >- >-sub get_barcode_from_itemnumber { >- my $self = shift; >- my $itemnumber = shift; >- >- my $sql = <<END_SQL; >-SELECT barcode >- FROM items >- WHERE itemnumber = ? >-END_SQL >- my $dbh = C4::Context->dbh() or return; >- my $sth = $dbh->prepare($sql) or return; >- $sth->execute($itemnumber) or return; >- my ($barcode) = $sth->fetchrow_array; >- return $barcode; >-} >- >-1; >- >diff --git a/t/db_dependent/lib/KohaTest/Circulation/AddIssue.pm b/t/db_dependent/lib/KohaTest/Circulation/AddIssue.pm >deleted file mode 100644 >index 2c3e393..0000000 >--- a/t/db_dependent/lib/KohaTest/Circulation/AddIssue.pm >+++ /dev/null >@@ -1,132 +0,0 @@ >-package KohaTest::Circulation::AddIssue; >-use base qw(KohaTest::Circulation); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-=head2 basic_usage >- >-basic usage of C4::Circulation::AddIssue >- >-Note: This logic is repeated in >-KohaTest::Circulation::checkout_first_item, but without tests. This >-includes tests at each step to make it easier to track down what's >-broken as we go along. >- >-=cut >- >-sub basic_usage : Test( 13 ) { >- my $self = shift; >- >- my $borrowernumber = $self->{'memberid'}; >- ok( $borrowernumber, "we're going to work with borrower: $borrowernumber" ); >- >- my $borrower = C4::Members::GetMemberDetails( $borrowernumber ); >- ok( $borrower, '...and we were able to look up that borrower' ); >- is( $borrower->{'borrowernumber'}, $borrowernumber, '...and they have the right borrowernumber' ); >- >- my $itemnumber = $self->{'items'}[0]{'itemnumber'}; >- ok( $itemnumber, "We're going to checkout itemnumber $itemnumber" ); >- my $barcode = $self->get_barcode_from_itemnumber($itemnumber); >- ok( $barcode, "...which has barcode $barcode" ); >- >- my $before_issues = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} ); >- # Note that we can't check for $before_issues as undef because GetItemIssue always returns a populated hashref >- ok( ! defined $before_issues->{'borrowernumber'}, '...and is not currently checked out' ) >- or diag( Data::Dumper->Dump( [ $before_issues ], [ 'before_issues' ] ) ); >- >- my ( $issuingimpossible, $needsconfirmation ) = C4::Circulation::CanBookBeIssued( $borrower, $barcode ); >- is( scalar keys %$issuingimpossible, 0, 'the item CanBookBeIssued' ) >- or diag( Data::Dumper->Dump( [ $issuingimpossible, $needsconfirmation ], [ qw( issuingimpossible needsconfirmation ) ] ) ); >- is( scalar keys %$needsconfirmation, 0, '...and the transaction does not needsconfirmation' ) >- or diag( Data::Dumper->Dump( [ $issuingimpossible, $needsconfirmation ], [ qw( issuingimpossible needsconfirmation ) ] ) ); >- >- # bug 2758 don't ask for confirmation if patron has $0.00 account balance >- # and IssuingInProcess is on >- my $orig_issuing_in_process = C4::Context->preference('IssuingInProcess'); >- my $dbh = C4::Context->dbh; >- $dbh->do("UPDATE systempreferences SET value = 1 WHERE variable = 'IssuingInProcess'"); >- C4::Context->clear_syspref_cache(); # FIXME not needed after a syspref mutator is written >- ( $issuingimpossible, $needsconfirmation ) = C4::Circulation::CanBookBeIssued( $borrower, $barcode ); >- is( scalar keys %$issuingimpossible, 0, 'the item CanBookBeIssued with IssuingInProcess ON (bug 2758)' ) >- or diag( Data::Dumper->Dump( [ $issuingimpossible, $needsconfirmation ], [ qw( issuingimpossible needsconfirmation ) ] ) ); >- is( scalar keys %$needsconfirmation, 0, >- '...and the transaction does not needsconfirmation with IssuingInProcess ON (bug 2758)' ) >- or diag( Data::Dumper->Dump( [ $issuingimpossible, $needsconfirmation ], [ qw( issuingimpossible needsconfirmation ) ] ) ); >- $dbh->do("UPDATE systempreferences SET value = ? WHERE variable = 'IssuingInProcess'", {}, $orig_issuing_in_process); >- C4::Context->clear_syspref_cache(); # FIXME not needed after a syspref mutator is written >- >- my $datedue = C4::Circulation::AddIssue( $borrower, $barcode ); >- ok( $datedue, "the item has been issued and it is due: $datedue" ); >- >- my $after_issues = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} ); >- is( $after_issues->{'borrowernumber'}, $borrowernumber, '...and now it is checked out to our borrower' ) >- or diag( Data::Dumper->Dump( [ $after_issues ], [ 'after_issues' ] ) ); >- >- my $loanlength = Date::Calc::Delta_Days( split( /-/, $after_issues->{'issuedate'} ), split( /-/, $after_issues->{'date_due'} ) ); >- ok( $loanlength, "the loanlength is $loanlength days" ); >- >- # save this here since we refer to it in set_issuedate. >- $self->{'loanlength'} = $loanlength; >- >-} >- >-=head2 set_issuedate >- >-Make sure that we can set the issuedate of an issue. >- >-Also, since we are specifying an issuedate and not a due date, the due >-date should be calculated from the issuedate, not today. >- >-=cut >- >-sub set_issuedate : Test( 7 ) { >- my $self = shift; >- >- my $before_issues = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} ); >- ok( ! defined $before_issues->{'borrowernumber'}, 'At this beginning, this item was not checked out.' ) >- or diag( Data::Dumper->Dump( [ $before_issues ], [ 'before_issues' ] ) ); >- >- my $issuedate = $self->random_date(); >- ok( $issuedate, "Check out an item on $issuedate" ); >- my $datedue = $self->checkout_first_item( { issuedate => $issuedate } ); >- ok( $datedue, "...and it's due on $datedue" ); >- >- my $after_issues = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} ); >- is( $after_issues->{'borrowernumber'}, $self->{'memberid'}, 'We found this item checked out to our member.' ) >- or diag( Data::Dumper->Dump( [ $after_issues ], [ 'issues' ] ) ); >- is( $after_issues->{'issuedate'}, $issuedate, "...and it was issued on $issuedate" ) >- or diag( Data::Dumper->Dump( [ $after_issues ], [ 'after_issues' ] ) ); >- >- my $loanlength = Date::Calc::Delta_Days( split( /-/, $after_issues->{'issuedate'} ), split( /-/, $after_issues->{'date_due'} ) ); >- ok( $loanlength, "the loanlength is $loanlength days" ); >- is( $loanlength, $self->{'loanlength'} ); >-} >- >-sub set_lastreneweddate_on_renewal : Test( 6 ) { >- my $self = shift; >- >- my $before_issues = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} ); >- ok( ! defined $before_issues->{'borrowernumber'}, 'At this beginning, this item was not checked out.' ) >- or diag( Data::Dumper->Dump( [ $before_issues ], [ 'before_issues' ] ) ); >- >- my $datedue = $self->checkout_first_item( { issuedate => $self->yesterday() } ); >- ok( $datedue, "The item is checked out and it's due on $datedue" ); >- >- my $issuedate = $self->random_date(); >- ok( $issuedate, "Check out an item again on $issuedate" ); >- # This will actually be a renewal >- $datedue = $self->checkout_first_item( { issuedate => $issuedate } ); >- ok( $datedue, "...and it's due on $datedue" ); >- >- my $after_issues = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} ); >- is( $after_issues->{'borrowernumber'}, $self->{'memberid'}, 'We found this item checked out to our member.' ) >- or diag( Data::Dumper->Dump( [ $after_issues ], [ 'issues' ] ) ); >- is( $after_issues->{'lastreneweddate'}, $issuedate, "...and it was renewed on $issuedate" ) >- or diag( Data::Dumper->Dump( [ $after_issues ], [ 'after_issues' ] ) ); >- >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Circulation/GetUpcomingDueIssues.pm b/t/db_dependent/lib/KohaTest/Circulation/GetUpcomingDueIssues.pm >deleted file mode 100644 >index 95dd1af..0000000 >--- a/t/db_dependent/lib/KohaTest/Circulation/GetUpcomingDueIssues.pm >+++ /dev/null >@@ -1,26 +0,0 @@ >-package KohaTest::Circulation::GetUpcomingDueIssues; >-use base qw(KohaTest::Circulation); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-=head2 basic_usage >- >-basic usage of C4::Circulation::GetUpcomingDueIssues() >- >-=cut >- >-sub basic_usage : Test(2) { >- my $self = shift; >- >- my $upcoming = C4::Circulation::GetUpcomingDueIssues(); >- isa_ok( $upcoming, 'ARRAY' ); >- >- is( scalar @$upcoming, 0, 'no issues yet' ) >- or diag( Data::Dumper->Dump( [$upcoming], ['upcoming'] ) ); >-} >- >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Circulation/MarkIssueReturned.pm b/t/db_dependent/lib/KohaTest/Circulation/MarkIssueReturned.pm >deleted file mode 100644 >index 5722bcf..0000000 >--- a/t/db_dependent/lib/KohaTest/Circulation/MarkIssueReturned.pm >+++ /dev/null >@@ -1,85 +0,0 @@ >-package KohaTest::Circulation::MarkIssueReturned; >-use base qw(KohaTest::Circulation); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-=head2 basic_usage >- >-basic usage of C4::Circulation::MarkIssueReturned >- >-=cut >- >-sub basic_usage : Test( 4 ) { >- my $self = shift; >- >- my $before_issues = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} ); >- ok( ! defined $before_issues->{'borrowernumber'}, 'our item is not checked out' ) >- or diag( Data::Dumper->Dump( [ $before_issues ], [ 'before_issues' ] ) ); >- >- my $datedue = $self->checkout_first_item(); >- ok( $datedue, "Now it is checked out and due on $datedue" ); >- >- my $after_issues = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} ); >- is( $after_issues->{'borrowernumber'}, $self->{'memberid'}, 'Our item is checked out to our borrower' ) >- or diag( Data::Dumper->Dump( [ $after_issues ], [ 'after_issues' ] ) ); >- >- C4::Circulation::MarkIssueReturned( $self->{'memberid'}, $self->{'items'}[0]{'itemnumber'} ); >- >- my $after_return = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} ); >- ok( ! defined $after_return->{'borrowernumber'}, 'The item is no longer checked out' ) >- or diag( Data::Dumper->Dump( [ $after_return ], [ 'after_return' ] ) ); >- >-} >- >-=head2 set_returndate >- >-check an item out, then, check it back in, specifying the returndate. >- >-verify that it's checked back in and the returndate is correct. >- >-=cut >- >-sub set_retundate : Test( 7 ) { >- my $self = shift; >- >- # It's not checked out to start with >- my $before_issues = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} ); >- ok( ! defined $before_issues->{'borrowernumber'}, 'our item is not checked out' ) >- or diag( Data::Dumper->Dump( [ $before_issues ], [ 'before_issues' ] ) ); >- >- # check it out >- my $datedue = $self->checkout_first_item(); >- ok( $datedue, "Now it is checked out and due on $datedue" ); >- >- # verify that it has been checked out >- my $after_issues = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} ); >- is( $after_issues->{'borrowernumber'}, $self->{'memberid'}, 'Our item is checked out to our borrower' ) >- or diag( Data::Dumper->Dump( [ $after_issues ], [ 'after_issues' ] ) ); >- >- # mark it as returned on some date >- my $returndate = $self->random_date(); >- ok( $returndate, "return this item on $returndate" ); >- >- C4::Circulation::MarkIssueReturned( $self->{'memberid'}, >- $self->{'items'}[0]{'itemnumber'}, >- undef, >- $returndate ); >- >- # validate that it is no longer checked out. >- my $after_return = C4::Circulation::GetItemIssue( $self->{'items'}[0]{'itemnumber'} ); >- ok( ! defined $after_return->{'borrowernumber'}, 'The item is no longer checked out' ) >- or diag( Data::Dumper->Dump( [ $after_return ], [ 'after_return' ] ) ); >- >- # grab the history for this item and make sure it looks right >- my $history = C4::Circulation::GetItemIssues( $self->{'items'}[0]{'itemnumber'}, 1 ); >- is( scalar @$history, 1, 'this item has been checked out one time.' ) >- or diag( Data::Dumper->Dump( [ $history ], [ 'history' ] ) ); >- is( $history->[0]{'returndate'}, $returndate, "...and it was returned on $returndate" ); >- >-} >- >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Context.pm b/t/db_dependent/lib/KohaTest/Context.pm >deleted file mode 100644 >index bba7f88..0000000 >--- a/t/db_dependent/lib/KohaTest/Context.pm >+++ /dev/null >@@ -1,54 +0,0 @@ >-package KohaTest::Context; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Context; >-sub testing_class { 'C4::Context' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( >- AUTOLOAD >- boolean_preference >- config >- dbh >- db_scheme2dbi >- get_shelves_userenv >- get_versions >- import >- KOHAVERSION >- marcfromkohafield >- ModZebrations >- new >- new_dbh >- preference >- read_config_file >- restore_context >- restore_dbh >- set_context >- set_dbh >- set_shelves_userenv >- set_userenv >- stopwords >- userenv >- Zconn >- zebraconfig >- _common_config >- _new_dbh >- _new_marcfromkohafield >- _new_stopwords >- _new_userenv >- _new_Zconn >- _unset_userenv >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >- >diff --git a/t/db_dependent/lib/KohaTest/Context/preference.pm b/t/db_dependent/lib/KohaTest/Context/preference.pm >deleted file mode 100644 >index 2ad73d1..0000000 >--- a/t/db_dependent/lib/KohaTest/Context/preference.pm >+++ /dev/null >@@ -1,54 +0,0 @@ >-package KohaTest::Context::preference; >-use base qw( KohaTest::Context ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Context; >-sub testing_class { 'C4::Context' }; >- >- >-=head2 STARTUP METHODS >- >-These get run once, before the main test methods in this module >- >-=cut >- >-=head2 TEST METHODS >- >-standard test methods >- >-=head3 preference_does_not_exist >- >-=cut >- >-sub preference_does_not_exist : Test( 1 ) { >- my $self = shift; >- >- my $missing = C4::Context->preference( 'doesnotexist' ); >- >- is( $missing, undef, 'a query for a missing syspref returns undef' ) >- or diag( Data::Dumper->Dump( [ $missing ], [ 'missing' ] ) ); >- >-} >- >- >-=head3 version_preference >- >-=cut >- >-sub version_preference : Test( 1 ) { >- my $self = shift; >- >- my $version = C4::Context->preference( 'version' ); >- >- ok( $version, 'C4::Context->preference returns a good version number' ) >- or diag( Data::Dumper->Dump( [ $version ], [ 'version' ] ) ); >- >-} >- >- >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Dates.pm b/t/db_dependent/lib/KohaTest/Dates.pm >deleted file mode 100644 >index 19a309d..0000000 >--- a/t/db_dependent/lib/KohaTest/Dates.pm >+++ /dev/null >@@ -1,37 +0,0 @@ >-package KohaTest::Dates; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Dates; >-sub testing_class { 'C4::Dates' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( _prefformat >- regexp >- dmy_map >- _check_date_and_time >- _chron_to_ymd >- _chron_to_hms >- new >- init >- output >- today >- _recognize_format >- DHTMLcalendar >- format >- visual >- format_date >- format_date_in_iso >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >- >diff --git a/t/db_dependent/lib/KohaTest/Dates/Usage.pm b/t/db_dependent/lib/KohaTest/Dates/Usage.pm >deleted file mode 100644 >index 8815c89..0000000 >--- a/t/db_dependent/lib/KohaTest/Dates/Usage.pm >+++ /dev/null >@@ -1,103 +0,0 @@ >-package KohaTest::Dates::Usage; >-use base qw( KohaTest::Dates ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Dates qw(format_date format_date_in_iso); >- >- >-sub startup_init_constants : Tests(startup => 0) { >- my $self = shift; >- $self->{thash} = { >- iso => [ '2001-01-01', '1989-09-21', '1952-01-00' ], >- metric => [ "01-01-2001", '21-09-1989', '00-01-1952' ], >- us => [ "01-01-2001", '09-21-1989', '01-00-1952' ], >- sql => [ '20010101 010101', '19890921 143907', '19520100 000000' ], >- }; >- $self->{formats} = [ sort keys %{ $self->{thash} } ]; >-} >- >-sub check_formats : Test( 8 ) { >- my $self = shift; >- >- my $syspref = C4::Dates->new->format(); >- ok( $syspref, "Your system preference is: $syspref" ); >- >- foreach ( @{ $self->{thash}->{'iso'} } ) { >- ok( format_date($_), "able to format_date() on $_" ); >- } >- >- foreach ( @{ $self->{thash}->{$syspref} } ) { >- ok( format_date_in_iso($_), "able to format_date_in_iso() on $_" ); >- } >- ok( C4::Dates->today(), "(default) CLASS ->today : " . C4::Dates->today() ); >-} >- >-sub defaults : Test( 24 ) { >- my $self = shift; >- >- foreach (@{ $self->{formats} }) { >- my $pre = sprintf '(%-6s)', $_; >- my $date = C4::Dates->new(); >- ok( $date, "$pre Date Creation : new()" ); >- isa_ok( $date, 'C4::Dates' ); >- ok( $_ eq $date->format($_), "$pre format($_) : " ); >- ok( $date->visual(), "$pre visual()" ); >- ok( $date->output(), "$pre output()" ); >- ok( $date->today(), "$pre object->today" ); >- >- } >-} >- >-sub valid_inputs : Test( 108 ) { >- my $self = shift; >- >- foreach my $format (@{ $self->{formats} }) { >- my $pre = sprintf '(%-6s)', $format; >- foreach my $testval ( @{ $self->{thash}->{$format} } ) { >- my ( $val, $today ); >- my $date = C4::Dates->new( $testval, $format ); >- ok( $date, "$pre Date Creation : new('$testval','$format')" ); >- isa_ok( $date, 'C4::Dates' ); >- ok( $date->regexp, "$pre has regexp()" ); >- ok( $val = $date->output(), describe( "$pre output()", $val ) ); >- foreach ( grep { !/$format/ } @{ $self->{formats} } ) { >- ok( $today = $date->output($_), describe( sprintf( "$pre output(%8s)", "'$_'" ), $today ) ); >- } >- ok( $today = $date->today(), describe( "$pre object->today", $today ) ); >- ok( $val = $date->output(), describe( "$pre output()", $val ) ); >- } >- } >-} >- >-sub independence_from_class : Test( 1 ) { >- my $self = shift; >- >- my $in1 = '12/25/1952'; # us >- my $in2 = '13/01/2001'; # metric >- my $d1 = C4::Dates->new( $in1, 'us' ); >- my $d2 = C4::Dates->new( $in2, 'metric' ); >- my $out1 = $d1->output('iso'); >- my $out2 = $d2->output('iso'); >- ok( $out1 ne $out2, "subsequent constructors get different dataspace ($out1 != $out2)" ); >- >-} >- >- >- >-sub describe { >- my $front = sprintf( "%-25s", shift ); >- my $tail = shift || 'FAILED'; >- return "$front : $tail"; >-} >- >-sub shutdown_clear_constants : Tests( shutdown => 0 ) { >- my $self = shift; >- delete $self->{thash}; >- delete $self->{formats}; >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Heading.pm b/t/db_dependent/lib/KohaTest/Heading.pm >deleted file mode 100644 >index 4f781a2..0000000 >--- a/t/db_dependent/lib/KohaTest/Heading.pm >+++ /dev/null >@@ -1,27 +0,0 @@ >-package KohaTest::Heading; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Heading; >-sub testing_class { 'C4::Heading' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( >- new_from_bib_field >- display_form >- authorities >- preferred_authorities >- _query_limiters >- _marc_format_handler >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Heading/MARC21.pm b/t/db_dependent/lib/KohaTest/Heading/MARC21.pm >deleted file mode 100644 >index 41cd4d3..0000000 >--- a/t/db_dependent/lib/KohaTest/Heading/MARC21.pm >+++ /dev/null >@@ -1,41 +0,0 @@ >-package KohaTest::Heading::MARC21; >-use base qw( KohaTest::Heading ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Heading; >-use C4::Heading::MARC21; >- >-use MARC::Field; >- >-sub testing_class { 'C4::Heading::MARC21' }; >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( >- new >- valid_bib_heading_tag >- parse_heading >- _get_subject_thesaurus >- _get_search_heading >- _get_display_heading >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-sub bug2315 : Test( 1 ) { >- >- my $subject_heading = MARC::Field->new(650, ' ', '0', >- a => "Dalziel, Andrew (Fictitious character", >- ')' => "Fiction." >- ); >- my $display_form = C4::Heading::MARC21::_get_display_heading($subject_heading, 'a'); >- is($display_form, "Dalziel, Andrew (Fictitious character", "bug 2315: no crash if heading subfield has metacharacter"); >- >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/ImportBatch.pm b/t/db_dependent/lib/KohaTest/ImportBatch.pm >deleted file mode 100644 >index 743b1aa..0000000 >--- a/t/db_dependent/lib/KohaTest/ImportBatch.pm >+++ /dev/null >@@ -1,126 +0,0 @@ >-package KohaTest::ImportBatch; >-use base qw(KohaTest); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::ImportBatch; >-use C4::Matcher; >-sub testing_class { 'C4::ImportBatch' }; >- >- >-sub routines : Test( 1 ) { >- my $self = shift; >- my @routines = qw( >- GetZ3950BatchId >- GetImportRecordMarc >- AddImportBatch >- GetImportBatch >- AddBiblioToBatch >- ModBiblioInBatch >- BatchStageMarcRecords >- AddItemsToImportBiblio >- BatchFindBibDuplicates >- BatchCommitBibRecords >- BatchCommitItems >- BatchRevertBibRecords >- BatchRevertItems >- CleanBatch >- GetAllImportBatches >- GetImportBatchRangeDesc >- GetItemNumbersFromImportBatch >- GetNumberOfNonZ3950ImportBatches >- GetImportBibliosRange >- GetBestRecordMatch >- GetImportBatchStatus >- SetImportBatchStatus >- GetImportBatchOverlayAction >- SetImportBatchOverlayAction >- GetImportBatchNoMatchAction >- SetImportBatchNoMatchAction >- GetImportBatchItemAction >- SetImportBatchItemAction >- GetImportBatchItemAction >- SetImportBatchItemAction >- GetImportBatchMatcher >- SetImportBatchMatcher >- GetImportRecordOverlayStatus >- SetImportRecordOverlayStatus >- GetImportRecordStatus >- SetImportRecordStatus >- GetImportRecordMatches >- SetImportRecordMatches >- _create_import_record >- _update_import_record_marc >- _add_biblio_fields >- _update_biblio_fields >- _parse_biblio_fields >- _update_batch_record_counts >- _get_commit_action >- _get_revert_action >- ); >- >- can_ok($self->testing_class, @routines); >-} >- >-sub startup_50_add_matcher : Test( startup => 1 ) { >- my $self = shift; >- # create test MARC21 ISBN matcher >- my $matcher = C4::Matcher->new('biblio'); >- $matcher->threshold(1000); >- $matcher->code('TESTISBN'); >- $matcher->description('test MARC21 ISBN matcher'); >- $matcher->add_simple_matchpoint('isbn', 1000, '020', 'a', -1, 0, ''); >- my $matcher_id = $matcher->store(); >- like($matcher_id, qr/^\d+$/, "store new matcher and get back ID"); >- >- $self->{'matcher_id'} = $matcher_id; >-} >- >-sub shutdown_50_remove_matcher : Test( shutdown => 6) { >- my $self = shift; >- my @matchers = C4::Matcher::GetMatcherList(); >- cmp_ok(scalar(@matchers), ">=", 1, "at least one matcher present"); >- my $matcher_id; >- my $testisbn_count = 0; >- # look for TESTISBN >- foreach my $matcher (@matchers) { >- if ($matcher->{'code'} eq 'TESTISBN') { >- $testisbn_count++; >- $matcher_id = $matcher->{'matcher_id'}; >- } >- } >- ok($testisbn_count == 1, "only one TESTISBN matcher"); >- like($matcher_id, qr/^\d+$/, "matcher ID is valid"); >- my $matcher = C4::Matcher->fetch($matcher_id); >- ok(defined($matcher), "got back a matcher"); >- ok($matcher_id == $matcher->{'id'}, "got back the correct matcher"); >- C4::Matcher->delete($matcher_id); >- my $matcher2 = C4::Matcher->fetch($matcher_id); >- ok(not(defined($matcher2)), "matcher removed"); >- >- delete $self->{'matcher_id'}; >-} >- >-=head2 UTILITY METHODS >- >-=cut >- >-sub add_import_batch { >- my $self = shift; >- my $test_batch = shift >- || { >- overlay_action => 'create_new', >- import_status => 'staging', >- batch_type => 'batch', >- file_name => 'foo', >- comments => 'inserted during automated testing', >- }; >- my $batch_id = AddImportBatch( $test_batch ); >- return $batch_id; >-} >- >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/ImportBatch/AddItemsToImportBiblio.pm b/t/db_dependent/lib/KohaTest/ImportBatch/AddItemsToImportBiblio.pm >deleted file mode 100644 >index 39d36df..0000000 >--- a/t/db_dependent/lib/KohaTest/ImportBatch/AddItemsToImportBiblio.pm >+++ /dev/null >@@ -1,29 +0,0 @@ >-package KohaTest::ImportBatch::getImportBatch; >-use base qw( KohaTest::ImportBatch ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::ImportBatch; >-use C4::Matcher; >-use C4::Biblio; >- >- >-sub something : Test( 2 ) { >- my $self = shift; >- >- my $batch_id = $self->add_import_batch(); >- ok( $batch_id, 'we have a batch_id' ); >- >- my $import_record_id = 0; >- >- my $marc_record = MARC::Record->new(); >- >- my @import_item_ids = C4::ImportBatch::AddItemsToImportBiblio( $batch_id, $import_record_id, $marc_record ); >- is( scalar( @import_item_ids ), 0, 'none inserted' ); >- >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/ImportBatch/BatchStageCommitRevert.pm b/t/db_dependent/lib/KohaTest/ImportBatch/BatchStageCommitRevert.pm >deleted file mode 100644 >index e03ee1f..0000000 >--- a/t/db_dependent/lib/KohaTest/ImportBatch/BatchStageCommitRevert.pm >+++ /dev/null >@@ -1,252 +0,0 @@ >-package KohaTest::ImportBatch::BatchStageCommitRevert; >-use base qw( KohaTest::ImportBatch ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::ImportBatch; >-use C4::Matcher; >-use C4::Biblio; >- >-# define test records for various batches >-sub startup_60_make_test_records : Test( startup ) { >- my $self = shift; >- $self->{'batches'} = { >- 'batch1' => { >- marc => _make_marc_batch([ >- ['isbn001', 'title 1', ['batch-item-1'] ], >- ['isbn002', 'title 2', [] ], >- ['isbn003', 'title 3', ['batch-item-2','batch-item-3'] ], >- ['isbn004', 'title 4', [ 'batch-item-4' ] ], >- ['isbn005', 'title 5', [ 'batch-item-5', 'batch-item-6', 'batch-item-7' ] ], >- ]), >- args => { >- parse_items => 1, >- overlay_action => 'create_new', >- nomatch_action => 'create_new', >- item_action => 'always_add', >- }, >- results => { >- num_bibs => 5, >- num_items => 7, >- num_invalid => 0, >- num_matches => 0, >- num_added => 5, >- num_updated => 0, >- num_items_added => 7, >- num_items_errored => 0, >- num_ignored => 0, >- }, >- }, >- 'batch2' => { >- marc => _make_marc_batch([ >- ['isbn001', 'overlay title 1', ['batch-item-8'] ], >- ['isbn002', 'overlay title 2', ['batch-item-9'] ], >- ['isbn006', 'title 6', ['batch-item-10'] ], >- ]), >- args => { >- parse_items => 1, >- overlay_action => 'replace', >- nomatch_action => 'create_new', >- item_action => 'always_add', >- }, >- results => { >- num_bibs => 3, >- num_items => 3, >- num_invalid => 0, >- num_matches => 2, >- num_added => 1, >- num_updated => 2, >- num_items_added => 3, >- num_items_errored => 0, >- num_ignored => 0, >- }, >- }, >- 'batch3' => { >- marc => _make_marc_batch([ >- ['isbn007', 'title 7', ['batch-item-11'] ], >- ['isbn006', 'overlay title 6', ['batch-item-12'] ], >- ]), >- args => { >- parse_items => 1, >- overlay_action => 'ignore', >- nomatch_action => 'ignore', >- item_action => 'always_add', >- }, >- results => { >- num_bibs => 2, >- num_items => 2, >- num_invalid => 0, >- num_matches => 1, >- num_added => 0, >- num_updated => 0, >- num_items_added => 1, >- num_items_errored => 0, >- num_ignored => 2, >- }, >- }, >- 'batch4' => { >- marc => _make_marc_batch([ >- ['isbn008', 'title 8', ['batch-item-13'] ], # not loading this item >- ]), >- args => { >- parse_items => 0, >- overlay_action => undef, >- nomatch_action => 'create_new', >- item_action => 'ignore', >- }, >- results => { >- num_bibs => 1, >- num_items => 0, >- num_invalid => 0, >- num_matches => 0, >- num_added => 1, >- num_updated => 0, >- num_items_added => 0, >- num_items_errored => 0, >- num_ignored => 0, >- }, >- }, >- 'batch5' => { >- marc => _make_marc_batch([ >- ['isbn009', 'title 9', ['batch-item-1'] ], # trigger dup barcode error >- 'junkjunkjunkjunk', # trigger invalid bib >- ]), >- args => { >- parse_items => 1, >- overlay_action => undef, >- nomatch_action => undef, >- item_action => undef, >- }, >- results => { >- num_bibs => 1, >- num_items => 1, >- num_invalid => 1, >- num_matches => 0, >- num_added => 1, >- num_updated => 0, >- num_items_added => 0, >- num_items_errored => 1, >- num_ignored => 0, >- }, >- }, >- 'batch6' => { >- marc => _make_marc_batch([ >- ['isbn001', 'match title 1', ['batch-item-14', 'batch-item-15'] ], >- ['isbn010', 'title 10', ['batch-item-16', 'batch-item-17'] ], >- ]), >- args => { >- parse_items => 1, >- overlay_action => 'ignore', >- nomatch_action => 'create_new', >- item_action => 'always_add', >- }, >- results => { >- num_bibs => 2, >- num_items => 4, >- num_invalid => 0, >- num_matches => 1, >- num_added => 1, >- num_updated => 0, >- num_items_added => 4, >- num_items_errored => 0, >- num_ignored => 1, >- }, >- }, >- }; >- >-} >- >-sub _make_marc_batch { >- my $defs = shift; >- my @marc = (); >- foreach my $rec (@$defs) { >- if (ref($rec) eq 'ARRAY') { >- my $isbn = $rec->[0]; >- my $title = $rec->[1]; >- my $items = $rec->[2]; >- my $bib = MARC::Record->new(); >- $bib->leader(' nam a22 7a 4500'); >- $bib->append_fields(MARC::Field->new('020', ' ', ' ', a => $isbn), >- MARC::Field->new('245', ' ', ' ', a => $title)); >- foreach my $barcode (@$items) { >- my ($itemtag, $toss, $barcodesf, $branchsf); >- ($itemtag, $toss) = GetMarcFromKohaField('items.itemnumber', ''); >- ($toss, $barcodesf) = GetMarcFromKohaField('items.barcode', ''); >- ($toss, $branchsf) = GetMarcFromKohaField('items.homebranch', ''); >- $bib->append_fields(MARC::Field->new($itemtag, ' ', ' ', $barcodesf => $barcode, $branchsf => 'CPL')); >- # FIXME: define branch in KohaTest >- } >- push @marc, $bib->as_usmarc(); >- } else { >- push @marc, $rec; >- } >- } >- return join('', @marc); >-} >- >-sub stage_commit_batches : Test( 75 ) { >- my $self = shift; >- >- my $matcher = C4::Matcher->fetch($self->{'matcher_id'}); >- ok(ref($matcher) eq 'C4::Matcher', "retrieved matcher"); >- >- for my $batch_key (sort keys %{ $self->{'batches'} }) { >- my $batch = $self->{'batches'}->{$batch_key}; >- my $args = $batch->{'args'}; >- my $results = $batch->{'results'}; >- my ($batch_id, $num_bibs, $num_items, @invalid) = >- BatchStageMarcRecords('MARC21', $batch->{marc}, "$batch_key.mrc", "$batch_key comments", >- '', $args->{'parse_items'}, 0); >- like($batch_id, qr/^\d+$/, "staged $batch_key"); >- cmp_ok($num_bibs, "==", $results->{'num_bibs'}, "$batch_key: correct number of bibs"); >- cmp_ok($num_items, "==", $results->{'num_items'}, "$batch_key: correct number of items"); >- cmp_ok(scalar(@invalid), "==", $results->{'num_invalid'}, "$batch_key: correct number of invalid bibs"); >- >- my $num_matches = BatchFindBibDuplicates($batch_id, $matcher, 10); >- cmp_ok($num_matches, "==", $results->{'num_matches'}, "$batch_key: correct number of bib matches"); >- >- if (defined $args->{'overlay_action'}) { >- if ($args->{'overlay_action'} eq 'create_new') { >- cmp_ok(GetImportBatchOverlayAction($batch_id), "eq", 'create_new', "$batch_key: verify default overlay action"); >- } else { >- SetImportBatchOverlayAction($batch_id, $args->{'overlay_action'}); >- cmp_ok(GetImportBatchOverlayAction($batch_id), "eq", $args->{'overlay_action'}, >- "$batch_key: changed overlay action"); >- } >- } >- if (defined $args->{'nomatch_action'}) { >- if ($args->{'nomatch_action'} eq 'create_new') { >- cmp_ok(GetImportBatchNoMatchAction($batch_id), "eq", 'create_new', "$batch_key: verify default nomatch action"); >- } else { >- SetImportBatchNoMatchAction($batch_id, $args->{'nomatch_action'}); >- cmp_ok(GetImportBatchNoMatchAction($batch_id), "eq", $args->{'nomatch_action'}, >- "$batch_key: changed nomatch action"); >- } >- } >- if (defined $args->{'item_action'}) { >- if ($args->{'item_action'} eq 'create_new') { >- cmp_ok(GetImportBatchItemAction($batch_id), "eq", 'always_add', "$batch_key: verify default item action"); >- } else { >- SetImportBatchItemAction($batch_id, $args->{'item_action'}); >- cmp_ok(GetImportBatchItemAction($batch_id), "eq", $args->{'item_action'}, >- "$batch_key: changed item action"); >- } >- } >- >- my ($num_added, $num_updated, $num_items_added, >- $num_items_errored, $num_ignored) = BatchCommitBibRecords($batch_id,''); >- cmp_ok($num_added, "==", $results->{'num_added'}, "$batch_key: added correct number of bibs"); >- cmp_ok($num_updated, "==", $results->{'num_updated'}, "$batch_key: updated correct number of bibs"); >- cmp_ok($num_items_added, "==", $results->{'num_items_added'}, "$batch_key: added correct number of items"); >- cmp_ok($num_items_errored, "==", $results->{'num_items_errored'}, "$batch_key: correct number of item add errors"); >- cmp_ok($num_ignored, "==", $results->{'num_ignored'}, "$batch_key: ignored correct number of bibs"); >- >- $self->reindex_marc(); >- } >- >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/ImportBatch/GetImportBatch.pm b/t/db_dependent/lib/KohaTest/ImportBatch/GetImportBatch.pm >deleted file mode 100644 >index 6f436c5..0000000 >--- a/t/db_dependent/lib/KohaTest/ImportBatch/GetImportBatch.pm >+++ /dev/null >@@ -1,39 +0,0 @@ >-package KohaTest::ImportBatch::getImportBatch; >-use base qw( KohaTest::ImportBatch ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::ImportBatch; >-use C4::Matcher; >-use C4::Biblio; >- >- >-=head3 add_one_and_find_it >- >-=cut >- >-sub add_one_and_find_it : Test( 7 ) { >- my $self = shift; >- >- my $batch = { >- overlay_action => 'create_new', >- import_status => 'staging', >- batch_type => 'batch', >- file_name => 'foo', >- comments => 'inserted during automated testing', >- }; >- my $batch_id = AddImportBatch($batch); >- ok( $batch_id, "successfully inserted batch: $batch_id" ); >- >- my $retrieved = GetImportBatch( $batch_id ); >- >- foreach my $key ( keys %$batch ) { >- is( $retrieved->{$key}, $batch->{$key}, "both objects agree on $key" ); >- } >- is( $retrieved->{'import_batch_id'}, $batch_id, 'batch_id' ); >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/ImportBatch/GetImportRecordMarc.pm b/t/db_dependent/lib/KohaTest/ImportBatch/GetImportRecordMarc.pm >deleted file mode 100644 >index b933b35..0000000 >--- a/t/db_dependent/lib/KohaTest/ImportBatch/GetImportRecordMarc.pm >+++ /dev/null >@@ -1,51 +0,0 @@ >-package KohaTest::ImportBatch::GetImportRecordMarc; >-use base qw( KohaTest::ImportBatch ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::ImportBatch; >-use C4::Matcher; >-use C4::Biblio; >- >- >-=head3 record_does_not_exist >- >-=cut >- >-sub record_does_not_exist : Test( 1 ) { >- my $self = shift; >- >- my $id = '999999999999'; >- my $marc = GetImportRecordMarc( $id ); >- ok( ! defined( $marc ), 'this marc is undefined' ); >- >-} >- >-sub record_does_exist : Test( 4 ) { >- my $self = shift; >- >- # we need an import_batch, so let GetZ3950BatchId create one: >- my $new_batch_id = GetZ3950BatchId('foo'); >- ok( $new_batch_id, "got a new batch ID: $new_batch_id" ); >- >- my $sth = C4::Context->dbh->prepare( >- "INSERT INTO import_records (import_batch_id, marc, marcxml) >- VALUES (?, ?, ?)" >- ); >- my $execute = $sth->execute( >- $new_batch_id, # batch_id >- 'marc', # marc >- 'marcxml', # marcxml >- ); >- ok( $execute, 'succesfully executed' ); >- my $import_record_id = C4::Context->dbh->{'mysql_insertid'}; >- ok( $import_record_id, 'we got an import_record_id' ); >- >- my $marc = GetImportRecordMarc($import_record_id); >- ok( defined($marc), 'this marc is defined' ); >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/ImportBatch/GetZ3950BatchId.pm b/t/db_dependent/lib/KohaTest/ImportBatch/GetZ3950BatchId.pm >deleted file mode 100644 >index f3f5d9c..0000000 >--- a/t/db_dependent/lib/KohaTest/ImportBatch/GetZ3950BatchId.pm >+++ /dev/null >@@ -1,42 +0,0 @@ >-package KohaTest::ImportBatch::GetZ3950BatchId; >-use base qw( KohaTest::ImportBatch ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::ImportBatch; >-use C4::Matcher; >-use C4::Biblio; >- >- >-=head3 batch_does_not_exist >- >-=cut >- >-sub batch_does_not_exist : Test( 5 ) { >- my $self = shift; >- >- my $file_name = 'testing batch'; >- >- # lets make sure it doesn't exist first >- my $sth = C4::Context->dbh->prepare('SELECT import_batch_id FROM import_batches >- WHERE batch_type = ? >- AND file_name = ?'); >- ok( $sth->execute( 'z3950', $file_name, ), 'execute' ); >- my $rowref = $sth->fetchrow_arrayref(); >- ok( !defined( $rowref ), 'this batch does not exist' ); >- >- # now let GetZ3950BatchId create one >- my $new_batch_id = GetZ3950BatchId( $file_name ); >- ok( $new_batch_id, "got a new batch ID: $new_batch_id" ); >- >- # now search for the one that was just created >- my $second_batch_id = GetZ3950BatchId( $file_name ); >- ok( $second_batch_id, "got a second batch ID: $second_batch_id" ); >- is( $second_batch_id, $new_batch_id, 'we got the same batch both times.' ); >-} >- >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Installer.pm b/t/db_dependent/lib/KohaTest/Installer.pm >deleted file mode 100644 >index b014552..0000000 >--- a/t/db_dependent/lib/KohaTest/Installer.pm >+++ /dev/null >@@ -1,41 +0,0 @@ >-package KohaTest::Installer; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >-use C4::Languages; >-use C4::Installer; >- >-sub SKIP_CLASS : Expensive { } >- >-sub testing_class { 'C4::Installer' }; >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( >- new >- marcflavour_list >- marc_framework_sql_list >- sample_data_sql_list >- sql_file_list >- load_db_schema >- load_sql_in_order >- set_marcflavour_syspref >- set_version_syspref >- load_sql >- ); >- can_ok( $self->testing_class, @methods ); >-} >- >-# ensure that we have a fresh, empty database >-# after running through the installer tests >-sub shutdown_50_init_db : Tests( shutdown ) { >- my $self = shift; >- >- KohaTest::clear_test_database(); >- KohaTest::create_test_database(); >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Installer/SqlScripts.pm b/t/db_dependent/lib/KohaTest/Installer/SqlScripts.pm >deleted file mode 100644 >index 510c574..0000000 >--- a/t/db_dependent/lib/KohaTest/Installer/SqlScripts.pm >+++ /dev/null >@@ -1,83 +0,0 @@ >-package KohaTest::Installer::SqlScripts; >-use base qw( KohaTest::Installer ); >- >-use strict; >-use warnings; >- >-use Test::More; >-use C4::Languages; >-use C4::Installer; >- >-sub startup_50_get_installer : Test( startup => 1 ) { >- my $self = shift; >- my $installer = C4::Installer->new(); >- is(ref($installer), "C4::Installer", "created installer"); >- $self->{installer} = $installer; >-} >- >-sub installer_all_sample_data : Tests { >- my $self = shift; >- >- skip "did not create installer" unless ref($self->{installer}) eq 'C4::Installer'; >- >- my $all_languages = getAllLanguages(); >- # find the available directory names >- my $dir=C4::Context->config('intranetdir')."/installer/data/" . >- (C4::Context->config("db_scheme") ? C4::Context->config("db_scheme") : "mysql") . "/"; >- opendir (MYDIR,$dir); >- my @languages = grep { !/^\.|CVS/ && -d "$dir/$_"} readdir(MYDIR); >- closedir MYDIR; >- >- cmp_ok(scalar(@languages), '>', 0, "at least one framework language defined"); >- >- foreach my $lang_code (@languages) { >- SKIP: { >- my $marc_flavours = $self->{installer}->marcflavour_list($lang_code); >- ok(defined($marc_flavours), "at least one MARC flavour for $lang_code"); >- skip "no MARC flavours for $lang_code" unless defined($marc_flavours); >- >- foreach my $flavour (@$marc_flavours) { >- SKIP: { >- $self->clear_test_database(); >- my $schema_error = $self->{installer}->load_db_schema(); >- is($schema_error, "", "no errors during schema load"); >- skip "error during schema load" if $schema_error ne ""; >- >- my $list = $self->{installer}->sql_file_list($lang_code, $flavour, { optional => 1, mandatory => 1 }); >- my $sql_count = scalar(@$list); >- cmp_ok($sql_count, '>', 0, "at least one SQL init file for $lang_code, $flavour"); >- skip "no SQL init files defined for $lang_code, $flavour" unless $sql_count > 0; >- >- my ($fwk_language, $installed_list) = $self->{installer}->load_sql_in_order($all_languages, @$list); >- >- # extract list of files >- my $level; >- my @file_list = map { >- map { $_->{level} = $level; $_ } @{ $level = $_->{level}; $_->{fwklist} } >- } @$installed_list; >- my $num_processed = scalar(@file_list); >- cmp_ok($num_processed, '==', $sql_count, "processed all sql scripts for $lang_code, $flavour"); >- >- my %sql_to_load = map { my $file = $_; >- my @file = split qr(\/|\\), $file; >- join("\t", $file[-2], $file[-1]) => 1 >- } @$list; >- foreach my $sql (@file_list) { >- ok(exists($sql_to_load{ "$sql->{level}\t$sql->{fwkname}" }), >- "SQL script $sql->{level}/$sql->{fwkname} is on list"); >- delete $sql_to_load{ "$sql->{level}\t$sql->{fwkname}" }; >- is($sql->{error}, "", "no errors when loading $sql->{fwkname}"); >- } >- ok(not(%sql_to_load), "no SQL scripts for $lang_code, $flavour left unloaded"); >- } >- } >- } >- } >-} >- >-sub shutdown_50_clear_installer : Tests( shutdown ) { >- my $self = shift; >- delete $self->{installer}; >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Installer/get_file_path_from_name.pm b/t/db_dependent/lib/KohaTest/Installer/get_file_path_from_name.pm >deleted file mode 100644 >index 40962a7..0000000 >--- a/t/db_dependent/lib/KohaTest/Installer/get_file_path_from_name.pm >+++ /dev/null >@@ -1,36 +0,0 @@ >-package KohaTest::Installer::get_file_path_from_name; >-use base qw( KohaTest::Installer ); >- >-use strict; >-use warnings; >- >-use Test::More; >-use C4::Languages; >-use C4::Installer; >- >-sub startup_50_get_installer : Test( startup => 1 ) { >- my $self = shift; >- my $installer = C4::Installer->new(); >- is(ref($installer), "C4::Installer", "created installer"); >- $self->{installer} = $installer; >-} >- >-sub search_for_known_scripts : Tests( 2 ) { >- my $self = shift; >- >- skip "did not create installer" unless ref($self->{installer}) eq 'C4::Installer'; >- >- foreach my $script ( 'installer/data/mysql/en/mandatory/message_transport_types.sql', >- 'installer/data/mysql/en/optional/sample_notices_message_attributes.sql', ) { >- >- ok( $self->{'installer'}->get_file_path_from_name( $script ), "found $script" ); >- } >- >-} >- >-sub shutdown_50_clear_installer : Tests( shutdown ) { >- my $self = shift; >- delete $self->{installer}; >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/ItemCirculationAlertPreference.pm b/t/db_dependent/lib/KohaTest/ItemCirculationAlertPreference.pm >deleted file mode 100644 >index 3094b33..0000000 >--- a/t/db_dependent/lib/KohaTest/ItemCirculationAlertPreference.pm >+++ /dev/null >@@ -1,27 +0,0 @@ >-package KohaTest::ItemCirculationAlertPreference; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::ItemCirculationAlertPreference; >-sub testing_class { 'C4::ItemCirculationAlertPreference' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( >- new >- create >- delete >- is_enabled_for >- find >- grid >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/ItemType.pm b/t/db_dependent/lib/KohaTest/ItemType.pm >deleted file mode 100644 >index 2474ce3..0000000 >--- a/t/db_dependent/lib/KohaTest/ItemType.pm >+++ /dev/null >@@ -1,23 +0,0 @@ >-package KohaTest::ItemType; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::ItemType; >-sub testing_class { 'C4::ItemType' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( >- new >- all >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Items.pm b/t/db_dependent/lib/KohaTest/Items.pm >deleted file mode 100644 >index ea76efd..0000000 >--- a/t/db_dependent/lib/KohaTest/Items.pm >+++ /dev/null >@@ -1,61 +0,0 @@ >-package KohaTest::Items; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Items; >-sub testing_class { 'C4::Items' } >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( >- >- GetItem >- AddItemFromMarc >- AddItem >- AddItemBatchFromMarc >- ModItemFromMarc >- ModItem >- ModItemTransfer >- ModDateLastSeen >- DelItem >- CheckItemPreSave >- GetItemStatus >- GetItemLocation >- GetLostItems >- GetItemsForInventory >- GetItemsCount >- GetItemInfosOf >- GetItemsByBiblioitemnumber >- GetItemsInfo >- get_itemnumbers_of >- GetItemnumberFromBarcode >- get_item_authorised_values >- get_authorised_value_images >- GetMarcItem >- _set_derived_columns_for_add >- _set_derived_columns_for_mod >- _do_column_fixes_for_mod >- _get_single_item_column >- _calc_items_cn_sort >- _set_defaults_for_add >- _koha_new_item >- _koha_modify_item >- _koha_delete_item >- _marc_from_item_hash >- _add_item_field_to_biblio >- _replace_item_field_in_biblio >- _repack_item_errors >- _get_unlinked_item_subfields >- _get_unlinked_subfields_xml >- _parse_unlinked_item_subfields_from_xml >- PrepareItemrecordDisplay >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Items/ColumnFixes.pm b/t/db_dependent/lib/KohaTest/Items/ColumnFixes.pm >deleted file mode 100644 >index aca4f73..0000000 >--- a/t/db_dependent/lib/KohaTest/Items/ColumnFixes.pm >+++ /dev/null >@@ -1,77 +0,0 @@ >-package KohaTest::Items::ColumnFixes; >-use base qw( KohaTest::Items ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Items; >- >-=head2 STARTUP METHODS >- >-These get run once, before the main test methods in this module >- >-=cut >- >-=head2 TEST METHODS >- >-standard test methods >- >-=head3 not_defined >- >- >-=cut >- >-sub not_defined : Test( 4 ) { >- >- my $item_mod_fixes_1 = { >- notforloan => undef, >- damaged => undef, >- wthdrawn => undef, >- itemlost => undef, >- }; >- >- C4::Items::_do_column_fixes_for_mod($item_mod_fixes_1); >- is( $item_mod_fixes_1->{'notforloan'}, 0, 'null notforloan fixed during mod' ); >- is( $item_mod_fixes_1->{'damaged'}, 0, 'null damaged fixed during mod' ); >- is( $item_mod_fixes_1->{'wthdrawn'}, 0, 'null wthdrawn fixed during mod' ); >- is( $item_mod_fixes_1->{'itemlost'}, 0, 'null itemlost fixed during mod' ); >- >-} >- >-sub empty : Test( 4 ) { >- >- my $item_mod_fixes_2 = { >- notforloan => '', >- damaged => '', >- wthdrawn => '', >- itemlost => '', >- }; >- >- C4::Items::_do_column_fixes_for_mod($item_mod_fixes_2); >- is( $item_mod_fixes_2->{'notforloan'}, 0, 'empty notforloan fixed during mod' ); >- is( $item_mod_fixes_2->{'damaged'}, 0, 'empty damaged fixed during mod' ); >- is( $item_mod_fixes_2->{'wthdrawn'}, 0, 'empty wthdrawn fixed during mod' ); >- is( $item_mod_fixes_2->{'itemlost'}, 0, 'empty itemlost fixed during mod' ); >- >-} >- >-sub not_clobbered : Test( 4 ) { >- >- my $item_mod_fixes_3 = { >- notforloan => 1, >- damaged => 2, >- wthdrawn => 3, >- itemlost => 4, >- }; >- >- C4::Items::_do_column_fixes_for_mod($item_mod_fixes_3); >- is( $item_mod_fixes_3->{'notforloan'}, 1, 'do not clobber notforloan during mod' ); >- is( $item_mod_fixes_3->{'damaged'}, 2, 'do not clobber damaged during mod' ); >- is( $item_mod_fixes_3->{'wthdrawn'}, 3, 'do not clobber wthdrawn during mod' ); >- is( $item_mod_fixes_3->{'itemlost'}, 4, 'do not clobber itemlost during mod' ); >- >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Items/GetItemsForInventory.pm b/t/db_dependent/lib/KohaTest/Items/GetItemsForInventory.pm >deleted file mode 100644 >index a56057e..0000000 >--- a/t/db_dependent/lib/KohaTest/Items/GetItemsForInventory.pm >+++ /dev/null >@@ -1,123 +0,0 @@ >-package KohaTest::Items::GetItemsForInventory; >-use base qw( KohaTest::Items ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Items; >- >-=head2 STARTUP METHODS >- >-These get run once, before the main test methods in this module >- >-=cut >- >-=head2 startup_90_add_item_get_callnumber >- >-=cut >- >-sub startup_90_add_item_get_callnumber : Test( startup => 13 ) { >- my $self = shift; >- >- $self->add_biblios( add_items => 1 ); >- >- ok( $self->{'items'}, 'An item has been aded' ) >- or diag( Data::Dumper->Dump( [ $self->{'items'} ], ['items'] ) ); >- >- my @biblioitems = C4::Biblio::GetBiblioItemByBiblioNumber( $self->{'items'}[0]{'biblionumber'} ); >- ok( $biblioitems[0]->{'biblioitemnumber'}, '...and it has a biblioitemnumber' ) >- or diag( Data::Dumper->Dump( [ \@biblioitems ], ['biblioitems'] ) ); >- >- my $items_info = GetItemsByBiblioitemnumber( $biblioitems[0]->{'biblioitemnumber'} ); >- isa_ok( $items_info, 'ARRAY', '...and we can search with that biblioitemnumber' ) >- or diag( Data::Dumper->Dump( [$items_info], ['items_info'] ) ); >- cmp_ok( scalar @$items_info, '>', 0, '...and we can find at least one item with that biblioitemnumber' ); >- >- my $item_info = $items_info->[0]; >- ok( $item_info->{'itemcallnumber'}, '...and the item we found has a call number: ' . $item_info->{'itemcallnumber'} ) >- or diag( Data::Dumper->Dump( [$item_info], ['item_info'] ) ); >- >- $self->{'callnumber'} = $item_info->{'itemcallnumber'}; >-} >- >- >-=head2 TEST METHODS >- >-standard test methods >- >-=head3 missing_parameters >- >-the minlocation and maxlocation parameters are required. If they are >-not provided, this method should somehow complain, such as returning >-undef or emitina warning or something. >- >-=cut >- >-sub missing_parameters : Test( 1 ) { >- my $self = shift; >- local $TODO = 'GetItemsForInventory should fail when missing required parameters'; >- >- my $items = C4::Items::GetItemsForInventory(); >- ok( ! defined $items, 'GetItemsForInventory fails when parameters are missing' ) >- or diag( Data::Dumper->Dump( [ $items ], [ 'items' ] ) ); >-} >- >-=head3 basic_usage >- >- >-=cut >- >-sub basic_usage : Test( 4 ) { >- my $self = shift; >- >- ok( $self->{'callnumber'}, 'we have a call number to search for: ' . $self->{'callnumber'} ); >- my $items = C4::Items::GetItemsForInventory( $self->{'callnumber'}, $self->{'callnumber'} ); >- isa_ok( $items, 'ARRAY', 'We were able to call GetItemsForInventory with our call number' ); >- is( scalar @$items, 1, '...and we found only one item' ); >- my $our_item = $items->[0]; >- is( $our_item->{'itemnumber'}, $self->{'items'}[0]{'itemnumber'}, '...and the item we found has the right itemnumber' ); >- >- # diag( Data::Dumper->Dump( [$items], ['items'] ) ); >-} >- >-=head3 date_last_seen >- >- >-=cut >- >-sub date_last_seen : Test( 6 ) { >- my $self = shift; >- >- ok( $self->{'callnumber'}, 'we have a call number to search for: ' . $self->{'callnumber'} ); >- >- my $items = C4::Items::GetItemsForInventory( >- $self->{'callnumber'}, # minlocation >- $self->{'callnumber'}, # maxlocation >- undef, # location >- undef, # itemtype >- C4::Dates->new( $self->tomorrow(), 'iso' )->output, # datelastseen >- ); >- >- isa_ok( $items, 'ARRAY', 'We were able to call GetItemsForInventory with our call number' ); >- is( scalar @$items, 1, '...and we found only one item' ); >- my $our_item = $items->[0]; >- is( $our_item->{'itemnumber'}, $self->{'items'}[0]{'itemnumber'}, '...and the item we found has the right itemnumber' ); >- >- # give a datelastseen of yesterday, and we should not get our item. >- $items = C4::Items::GetItemsForInventory( >- $self->{'callnumber'}, # minlocation >- $self->{'callnumber'}, # maxlocation >- undef, # location >- undef, # itemtype >- C4::Dates->new( $self->yesterday(), 'iso' )->output, # datelastseen >- ); >- >- isa_ok( $items, 'ARRAY', 'We were able to call GetItemsForInventory with our call number' ); >- is( scalar @$items, 0, '...and we found no items' ); >- >-} >- >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Items/ModItemsFromMarc.pm b/t/db_dependent/lib/KohaTest/Items/ModItemsFromMarc.pm >deleted file mode 100644 >index d0522ee..0000000 >--- a/t/db_dependent/lib/KohaTest/Items/ModItemsFromMarc.pm >+++ /dev/null >@@ -1,91 +0,0 @@ >-package KohaTest::Items::ModItemsFromMarc; >-use base qw( KohaTest::Items ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Context; >-use C4::Biblio; >-use C4::Items; >- >-=head2 STARTUP METHODS >- >-These get run once, before the main test methods in this module >- >-=cut >- >-=head2 startup_90_add_item_get_callnumber >- >-=cut >- >-sub startup_90_add_item_get_callnumber : Test( startup => 13 ) { >- my $self = shift; >- >- $self->add_biblios( count => 1, add_items => 1 ); >- >- ok( $self->{'items'}, 'An item has been aded' ) >- or diag( Data::Dumper->Dump( [ $self->{'items'} ], ['items'] ) ); >- >- my @biblioitems = C4::Biblio::GetBiblioItemByBiblioNumber( $self->{'items'}[0]{'biblionumber'} ); >- ok( $biblioitems[0]->{'biblioitemnumber'}, '...and it has a biblioitemnumber' ) >- or diag( Data::Dumper->Dump( [ \@biblioitems ], ['biblioitems'] ) ); >- >- my $items_info = GetItemsByBiblioitemnumber( $biblioitems[0]->{'biblioitemnumber'} ); >- isa_ok( $items_info, 'ARRAY', '...and we can search with that biblioitemnumber' ) >- or diag( Data::Dumper->Dump( [$items_info], ['items_info'] ) ); >- cmp_ok( scalar @$items_info, '>', 0, '...and we can find at least one item with that biblioitemnumber' ); >- >- my $item_info = $items_info->[0]; >- ok( $item_info->{'itemcallnumber'}, '...and the item we found has a call number: ' . $item_info->{'itemcallnumber'} ) >- or diag( Data::Dumper->Dump( [$item_info], ['item_info'] ) ); >- >- $self->{itemnumber} = $item_info->{itemnumber}; >-} >- >- >-=head2 TEST METHODS >- >-standard test methods >- >-=head3 bug2466 >- >-Regression test for bug 2466 (when clearing an item field >-via the cataloging or serials item editor, corresponding >-column is not cleared). >- >-=cut >- >-sub bug2466 : Test( 8 ) { >- my $self = shift; >- >- my $item = C4::Items::GetItem($self->{itemnumber}); >- isa_ok($item, 'HASH', "item $self->{itemnumber} exists"); >- >- my $item_marc = C4::Items::GetMarcItem($item->{biblionumber}, $self->{itemnumber}); >- isa_ok($item_marc, 'MARC::Record', "retrieved item MARC"); >- >- cmp_ok($item->{itemcallnumber}, 'ne', '', "item call number is not blank"); >- >- my ($callnum_tag, $callnum_subfield) = C4::Biblio::GetMarcFromKohaField('items.itemcallnumber', ''); >- cmp_ok($callnum_tag, '>', 0, "found tag for itemcallnumber"); >- >- my $item_field = $item_marc->field($callnum_tag); >- ok(defined($item_field), "retrieved MARC field for item"); >- >- $item_field->delete_subfield(code => $callnum_subfield); >- >- my $dbh = C4::Context->dbh; >- my $item_from_marc = C4::Biblio::TransformMarcToKoha($dbh, $item_marc, '', 'items'); >- ok(not(exists($item_from_marc->{itemcallnumber})), "itemcallnumber subfield removed"); >- >- C4::Items::ModItemFromMarc($item_marc, $item->{biblionumber}, $self->{itemnumber}); >- >- my $modified_item = C4::Items::GetItem($self->{itemnumber}); >- isa_ok($modified_item, 'HASH', "retrieved modified item"); >- >- ok(not(defined($modified_item->{itemcallnumber})), "itemcallnumber is now undef"); >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Items/SetDefaults.pm b/t/db_dependent/lib/KohaTest/Items/SetDefaults.pm >deleted file mode 100644 >index fd622a7..0000000 >--- a/t/db_dependent/lib/KohaTest/Items/SetDefaults.pm >+++ /dev/null >@@ -1,86 +0,0 @@ >-package KohaTest::Items::SetDefaults; >-use base qw( KohaTest::Items ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Items; >- >-=head2 STARTUP METHODS >- >-These get run once, before the main test methods in this module >- >-=cut >- >-=head2 TEST METHODS >- >-standard test methods >- >-=head3 >- >- >-=cut >- >-sub add_some_items : Test( 3 ) { >- >- my $item_to_add_1 = { itemnotes => 'newitem', }; >- >- C4::Items::_set_defaults_for_add($item_to_add_1); >- ok( exists $item_to_add_1->{'dateaccessioned'}, 'dateaccessioned added to new item' ); >- like( $item_to_add_1->{'dateaccessioned'}, qr/^\d\d\d\d-\d\d-\d\d$/, 'new dateaccessioned is dddd-dd-dd' ); >- is( $item_to_add_1->{'itemnotes'}, 'newitem', 'itemnotes not clobbered' ); >- >-} >- >-sub undefined : Test( 4 ) { >- my $item_add_fixes_1 = { >- notforloan => undef, >- damaged => undef, >- wthdrawn => undef, >- itemlost => undef, >- }; >- >- C4::Items::_set_defaults_for_add($item_add_fixes_1); >- is( $item_add_fixes_1->{'notforloan'}, 0, 'null notforloan fixed during add' ); >- is( $item_add_fixes_1->{'damaged'}, 0, 'null damaged fixed during add' ); >- is( $item_add_fixes_1->{'wthdrawn'}, 0, 'null wthdrawn fixed during add' ); >- is( $item_add_fixes_1->{'itemlost'}, 0, 'null itemlost fixed during add' ); >-} >- >-sub empty_gets_fixed : Test( 4 ) { >- >- my $item_add_fixes_2 = { >- notforloan => '', >- damaged => '', >- wthdrawn => '', >- itemlost => '', >- }; >- >- C4::Items::_set_defaults_for_add($item_add_fixes_2); >- is( $item_add_fixes_2->{'notforloan'}, 0, 'empty notforloan fixed during add' ); >- is( $item_add_fixes_2->{'damaged'}, 0, 'empty damaged fixed during add' ); >- is( $item_add_fixes_2->{'wthdrawn'}, 0, 'empty wthdrawn fixed during add' ); >- is( $item_add_fixes_2->{'itemlost'}, 0, 'empty itemlost fixed during add' ); >- >-} >- >-sub do_not_clobber : Test( 4 ) { >- >- my $item_add_fixes_3 = { >- notforloan => 1, >- damaged => 2, >- wthdrawn => 3, >- itemlost => 4, >- }; >- >- C4::Items::_set_defaults_for_add($item_add_fixes_3); >- is( $item_add_fixes_3->{'notforloan'}, 1, 'do not clobber notforloan during mod' ); >- is( $item_add_fixes_3->{'damaged'}, 2, 'do not clobber damaged during mod' ); >- is( $item_add_fixes_3->{'wthdrawn'}, 3, 'do not clobber wthdrawn during mod' ); >- is( $item_add_fixes_3->{'itemlost'}, 4, 'do not clobber itemlost during mod' ); >- >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Koha.pm b/t/db_dependent/lib/KohaTest/Koha.pm >deleted file mode 100644 >index 13a145a..0000000 >--- a/t/db_dependent/lib/KohaTest/Koha.pm >+++ /dev/null >@@ -1,49 +0,0 @@ >-package KohaTest::Koha; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Koha; >-sub testing_class { 'C4::Koha' } >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( slashifyDate >- DisplayISBN >- subfield_is_koha_internal_p >- GetItemTypes >- get_itemtypeinfos_of >- GetCcodes >- getauthtypes >- getauthtype >- getframeworks >- getframeworkinfo >- getitemtypeinfo >- getitemtypeimagedir >- getitemtypeimagesrc >- getitemtypeimagelocation >- _getImagesFromDirectory >- _getSubdirectoryNames >- getImageSets >- GetPrinters >- GetPrinter >- getnbpages >- getallthemes >- getFacets >- get_infos_of >- get_notforloan_label_of >- displayServers >- GetAuthValCode >- GetAuthorisedValues >- GetAuthorisedValueCategories >- GetKohaAuthorisedValues >- display_marc_indicators >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Koha/displayServers.pm b/t/db_dependent/lib/KohaTest/Koha/displayServers.pm >deleted file mode 100644 >index 7794268..0000000 >--- a/t/db_dependent/lib/KohaTest/Koha/displayServers.pm >+++ /dev/null >@@ -1,192 +0,0 @@ >-package KohaTest::Koha::displayServers; >-use base qw( KohaTest::Koha ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Koha; >- >-=head2 basic_usage >- >-call displayServers with no parameters and investigate the things that >-it returns. This depends on there being at least one server defined, >-as do some other tests in this module. >- >-=cut >- >-sub basic_usage : Test( 12 ) { >- my $self = shift; >- >- my $servers = C4::Koha::displayServers(); >- isa_ok( $servers, 'ARRAY' ); >- my $firstserver = $servers->[0]; >- isa_ok( $firstserver, 'HASH' ); >- >- my @keys = qw( opensearch icon value name checked zed label id encoding ); >- is( scalar keys %$firstserver, scalar @keys, 'the hash has the right number of keys' ); >- foreach my $key ( @keys ) { >- ok( exists $firstserver->{$key}, "There is a $key key" ); >- } >- >- # diag( Data::Dumper->Dump( [ $servers ], [ 'servers' ] ) ); >-} >- >-=head2 position_does_not_exist >- >-call displayServers with a position that does not exist and make sure >-that we get none back. >- >-=cut >- >-sub position_does_not_exist : Test( 2 ) { >- my $self = shift; >- >- my $servers = C4::Koha::displayServers( 'this does not exist' ); >- isa_ok( $servers, 'ARRAY' ); >- is( scalar @$servers, 0, 'received no servers' ); >- >- # diag( Data::Dumper->Dump( [ $servers ], [ 'servers' ] ) ); >-} >- >-=head2 position_does_exist >- >-call displayServers with a position that does exist and make sure that >-we get at least one back. >- >-=cut >- >-sub position_does_exist : Test( 3 ) { >- my $self = shift; >- >- my $position = $self->_get_a_position(); >- ok( $position, 'We have a position that exists' ); >- >- my $servers = C4::Koha::displayServers( $position ); >- isa_ok( $servers, 'ARRAY' ); >- ok( scalar @$servers, 'received at least one server' ); >- >- # diag( Data::Dumper->Dump( [ $servers ], [ 'servers' ] ) ); >-} >- >-=head2 type_does_not_exist >- >-call displayServers with a type that does not exist and make sure >-that we get none back. >- >-=cut >- >-sub type_does_not_exist : Test( 2 ) { >- my $self = shift; >- >- my $servers = C4::Koha::displayServers( undef, 'this does not exist' ); >- isa_ok( $servers, 'ARRAY' ); >- is( scalar @$servers, 0, 'received no servers' ); >- >- # diag( Data::Dumper->Dump( [ $servers ], [ 'servers' ] ) ); >-} >- >-=head2 type_does_exist >- >-call displayServers with a type that does exist and make sure >-that we get at least one back. >- >-=cut >- >-sub type_does_exist : Test( 3 ) { >- my $self = shift; >- >- my $type = $self->_get_a_type(); >- ok( $type, 'We have a type that exists' ); >- >- my $servers = C4::Koha::displayServers( undef, $type ); >- isa_ok( $servers, 'ARRAY' ); >- ok( scalar @$servers, 'received at least one server' ); >- >- # diag( Data::Dumper->Dump( [ $servers ], [ 'servers' ] ) ); >-} >- >-=head2 position_and_type >- >-call displayServers with a variety of both positions and types and >-verify that we get either something or nothing back. >- >- >-=cut >- >-sub position_and_type : Test( 8 ) { >- my $self = shift; >- >- my ( $position, $type ) = $self->_get_a_position_and_type(); >- ok( $position, 'We have a type that exists' ); >- ok( $type, 'We have a type that exists' ); >- >- my $servers = C4::Koha::displayServers( $position, 'type does not exist' ); >- isa_ok( $servers, 'ARRAY' ); >- is( scalar @$servers, 0, 'received no servers' ); >- >- $servers = C4::Koha::displayServers( 'position does not exist', $type ); >- isa_ok( $servers, 'ARRAY' ); >- is( scalar @$servers, 0, 'received no servers' ); >- >- $servers = C4::Koha::displayServers( $position, $type ); >- isa_ok( $servers, 'ARRAY' ); >- ok( scalar @$servers, 'received at least one server' ); >- >- # diag( Data::Dumper->Dump( [ $servers ], [ 'servers' ] ) ); >-} >- >-=head1 INTERNAL METHODS >- >-these are not test methods, but they help me write them. >- >-=head2 _get_a_position >- >-returns a position value for which at least one server exists >- >-=cut >- >-sub _get_a_position { >- my $self = shift; >- >- my ( $position, $type ) = $self->_get_a_position_and_type(); >- return $position; >- >-} >- >-=head2 _get_a_type >- >-returns a type value for which at least one server exists >- >-=cut >- >-sub _get_a_type { >- my $self = shift; >- >- my ( $position, $type ) = $self->_get_a_position_and_type(); >- return $type; >- >-} >- >-=head2 _get_a_position_and_type >- >-returns a position and type for a server >- >-=cut >- >-sub _get_a_position_and_type { >- my $self = shift; >- >- my $dbh = C4::Context->dbh; >- my $sql = 'SELECT position, type FROM z3950servers'; >- my $sth = $dbh->prepare($sql) or return; >- $sth->execute or return; >- >- my @row = $sth->fetchrow_array; >- return ( $row[0], $row[1] ); >- >-} >- >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Koha/get_itemtypeinfos_of.pm b/t/db_dependent/lib/KohaTest/Koha/get_itemtypeinfos_of.pm >deleted file mode 100644 >index 9845e90..0000000 >--- a/t/db_dependent/lib/KohaTest/Koha/get_itemtypeinfos_of.pm >+++ /dev/null >@@ -1,59 +0,0 @@ >-package KohaTest::Koha::get_itemtypeinfos_of; >-use base qw( KohaTest::Koha ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Koha; >- >-=head2 get_one >- >-calls get_itemtypeinfos_of on one item type and checks that it gets >-back something sane. >- >-=cut >- >-sub get_one : Test( 8 ) { >- my $self = shift; >- >- my $itemtype_info = C4::Koha::get_itemtypeinfos_of( 'BK' ); >- ok( $itemtype_info, 'we got back something from get_itemtypeinfos_of' ); >- isa_ok( $itemtype_info, 'HASH', '...and it' ); >- ok( exists $itemtype_info->{'BK'}, '...and it has a BK key' ) >- or diag( Data::Dumper->Dump( [ $itemtype_info ], [ 'itemtype_info' ] ) ); >- is( scalar keys %$itemtype_info, 1, '...and it has 1 key' ); >- foreach my $key ( qw( imageurl itemtype notforloan description ) ) { >- ok( exists $itemtype_info->{'BK'}{$key}, "...and the BK info has a $key key" ); >- } >- >-} >- >-=head2 get_two >- >-calls get_itemtypeinfos_of on a list of item types and verifies the >-results. >- >-=cut >- >-sub get_two : Test( 13 ) { >- my $self = shift; >- >- my @itemtypes = qw( BK MU ); >- my $itemtype_info = C4::Koha::get_itemtypeinfos_of( @itemtypes ); >- ok( $itemtype_info, 'we got back something from get_itemtypeinfos_of' ); >- isa_ok( $itemtype_info, 'HASH', '...and it' ); >- is( scalar keys %$itemtype_info, scalar @itemtypes, '...and it has ' . scalar @itemtypes . ' keys' ); >- foreach my $it ( @itemtypes ) { >- ok( exists $itemtype_info->{$it}, "...and it has a $it key" ) >- or diag( Data::Dumper->Dump( [ $itemtype_info ], [ 'itemtype_info' ] ) ); >- foreach my $key ( qw( imageurl itemtype notforloan description ) ) { >- ok( exists $itemtype_info->{$it}{$key}, "...and the $it info has a $key key" ); >- } >- } >- >-} >- >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Koha/getitemtypeimagedir.pm b/t/db_dependent/lib/KohaTest/Koha/getitemtypeimagedir.pm >deleted file mode 100644 >index ea8b034..0000000 >--- a/t/db_dependent/lib/KohaTest/Koha/getitemtypeimagedir.pm >+++ /dev/null >@@ -1,27 +0,0 @@ >-package KohaTest::Koha::getitemtypeimagedir; >-use base qw( KohaTest::Koha ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Koha; >- >-sub check_default : Test( 5 ) { >- my $self = shift; >- >- my $opac_directory = C4::Koha::getitemtypeimagedir('opac'); >- my $default_directory = C4::Koha::getitemtypeimagedir('opac'); >- my $intranet_directory = C4::Koha::getitemtypeimagedir('intranet'); >- >- ok( $opac_directory, 'the opac directory is defined' ); >- ok( $default_directory, 'the default directory is defined' ); >- ok( $intranet_directory, 'the intranet directory is defined' ); >- >- is( $opac_directory, $default_directory, 'the opac directory is returned as the default' ); >- isnt( $intranet_directory, $default_directory, 'the intranet directory is not the same as the default' ); >- >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Letters.pm b/t/db_dependent/lib/KohaTest/Letters.pm >deleted file mode 100644 >index f2d7b0d..0000000 >--- a/t/db_dependent/lib/KohaTest/Letters.pm >+++ /dev/null >@@ -1,27 +0,0 @@ >-package KohaTest::Letters; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Members; >-sub testing_class { 'C4::Letters' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( addalert >- delalert >- getalert >- findrelatedto >- SendAlerts >- GetPreparedLetter >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >- >diff --git a/t/db_dependent/lib/KohaTest/Letters/GetLetter.pm b/t/db_dependent/lib/KohaTest/Letters/GetLetter.pm >deleted file mode 100644 >index 53e5439..0000000 >--- a/t/db_dependent/lib/KohaTest/Letters/GetLetter.pm >+++ /dev/null >@@ -1,32 +0,0 @@ >-package KohaTest::Letters::GetLetter; >-use base qw( KohaTest::Letters ); >- >-use strict; >-use warnings; >- >-use C4::Letters; >-use Test::More; >- >-sub GetLetter : Test( 6 ) { >- my $self = shift; >- >- my $letter = getletter( 'circulation', 'ODUE', '' ); >- >- isa_ok( $letter, 'HASH' ) >- or diag( Data::Dumper->Dump( [ $letter ], [ 'letter' ] ) ); >- >- is( $letter->{'code'}, 'ODUE', 'code' ); >- is( $letter->{'module'}, 'circulation', 'module' ); >- ok( exists $letter->{'content'}, 'content' ); >- ok( exists $letter->{'name'}, 'name' ); >- ok( exists $letter->{'title'}, 'title' ); >- >-} >- >-1; >- >- >- >- >- >- >diff --git a/t/db_dependent/lib/KohaTest/Letters/GetLetters.pm b/t/db_dependent/lib/KohaTest/Letters/GetLetters.pm >deleted file mode 100644 >index 576b3bf..0000000 >--- a/t/db_dependent/lib/KohaTest/Letters/GetLetters.pm >+++ /dev/null >@@ -1,30 +0,0 @@ >-package KohaTest::Letters::GetLetters; >-use base qw( KohaTest::Letters ); >- >-use strict; >-use warnings; >- >-use C4::Letters; >-use Test::More; >- >-sub GetDefaultLetters : Test( 2 ) { >- my $self = shift; >- >- my $letters = GetLetters(); >- >- # the default install includes several entries in the letter table. >- isa_ok( $letters, 'HASH' ) >- or diag( Data::Dumper->Dump( [ $letters ], [ 'letters' ] ) ); >- >- ok( scalar keys( %$letters ) > 0, 'we got some letters' ); >- >- >-} >- >-1; >- >- >- >- >- >- >diff --git a/t/db_dependent/lib/KohaTest/Log.pm b/t/db_dependent/lib/KohaTest/Log.pm >deleted file mode 100644 >index dc7b26e..0000000 >--- a/t/db_dependent/lib/KohaTest/Log.pm >+++ /dev/null >@@ -1,25 +0,0 @@ >-package KohaTest::Log; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Log; >-sub testing_class { 'C4::Log' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( logaction >- GetLogStatus >- displaylog >- GetLogs >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >- >diff --git a/t/db_dependent/lib/KohaTest/Members.pm b/t/db_dependent/lib/KohaTest/Members.pm >deleted file mode 100644 >index d1a76fe..0000000 >--- a/t/db_dependent/lib/KohaTest/Members.pm >+++ /dev/null >@@ -1,63 +0,0 @@ >-package KohaTest::Members; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Members; >-sub testing_class { 'C4::Members' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( Search >- GetMemberDetails >- patronflags >- GetMember >- GetMemberIssuesAndFines >- ModMember >- AddMember >- Check_Userid >- changepassword >- fixup_cardnumber >- GetGuarantees >- UpdateGuarantees >- GetPendingIssues >- GetAllIssues >- GetMemberAccountRecords >- GetMemberAccountBalance >- GetBorNotifyAcctRecord >- checkuniquemember >- checkcardnumber >- getzipnamecity >- getidcity >- GetExpiryDate >- checkuserpassword >- GetborCatFromCatType >- GetBorrowercategory >- ethnicitycategories >- fixEthnicity >- GetAge >- get_institutions >- add_member_orgs >- MoveMemberToDeleted >- DelMember >- ExtendMemberSubscriptionTo >- GetTitles >- GetPatronImage >- PutPatronImage >- RmPatronImage >- GetBorrowersToExpunge >- GetBorrowersWhoHaveNeverBorrowed >- GetBorrowersWithIssuesHistoryOlderThan >- GetBorrowersNamesAndLatestIssue >- IssueSlip >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >- >diff --git a/t/db_dependent/lib/KohaTest/Members/AttributeTypes.pm b/t/db_dependent/lib/KohaTest/Members/AttributeTypes.pm >deleted file mode 100644 >index 6525267..0000000 >--- a/t/db_dependent/lib/KohaTest/Members/AttributeTypes.pm >+++ /dev/null >@@ -1,119 +0,0 @@ >-package KohaTest::Members::AttributeTypes; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Members::AttributeTypes; >-sub testing_class { 'C4::Members::AttributeTypes' }; >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( >- new >- fetch >- GetAttributeTypes >- code >- description >- repeatable >- unique_id >- opac_display >- password_allowed >- staff_searchable >- authorised_value_category >- store >- delete >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-sub startup_50_create_types : Test( startup => 28 ) { >- my $self = shift; >- >- my $type1 = C4::Members::AttributeTypes->new('CAMPUSID', 'institution ID'); >- isa_ok($type1, 'C4::Members::AttributeTypes'); >- is($type1->code(), 'CAMPUSID', "set code in constructor"); >- is($type1->description(), 'institution ID', "set description in constructor"); >- ok(!$type1->repeatable(), "repeatable defaults to false"); >- ok(!$type1->unique_id(), "unique_id defaults to false"); >- ok(!$type1->opac_display(), "opac_display defaults to false"); >- ok(!$type1->password_allowed(), "password_allowed defaults to false"); >- ok(!$type1->staff_searchable(), "staff_searchable defaults to false"); >- is($type1->authorised_value_category(), '', "authorised_value_category defaults to ''"); >- >- $type1->repeatable('foobar'); >- ok($type1->repeatable(), "repeatable now true"); >- cmp_ok($type1->repeatable(), '==', 1, "repeatable not set to 'foobar'"); >- $type1->repeatable(0); >- ok(!$type1->repeatable(), "repeatable now false"); >- >- $type1->unique_id('foobar'); >- ok($type1->unique_id(), "unique_id now true"); >- cmp_ok($type1->unique_id(), '==', 1, "unique_id not set to 'foobar'"); >- $type1->unique_id(0); >- ok(!$type1->unique_id(), "unique_id now false"); >- >- $type1->opac_display('foobar'); >- ok($type1->opac_display(), "opac_display now true"); >- cmp_ok($type1->opac_display(), '==', 1, "opac_display not set to 'foobar'"); >- $type1->opac_display(0); >- ok(!$type1->opac_display(), "opac_display now false"); >- >- $type1->password_allowed('foobar'); >- ok($type1->password_allowed(), "password_allowed now true"); >- cmp_ok($type1->password_allowed(), '==', 1, "password_allowed not set to 'foobar'"); >- $type1->password_allowed(0); >- ok(!$type1->password_allowed(), "password_allowed now false"); >- >- $type1->staff_searchable('foobar'); >- ok($type1->staff_searchable(), "staff_searchable now true"); >- cmp_ok($type1->staff_searchable(), '==', 1, "staff_searchable not set to 'foobar'"); >- $type1->staff_searchable(0); >- ok(!$type1->staff_searchable(), "staff_searchable now false"); >- >- $type1->code('INSTID'); >- is($type1->code(), 'CAMPUSID', 'code() allows retrieving but not setting'); >- $type1->description('student ID'); >- is($type1->description(), 'student ID', 'set description'); >- $type1->authorised_value_category('CAT'); >- is($type1->authorised_value_category(), 'CAT', 'set authorised_value_category'); >- >- $type1->repeatable(1); >- $type1->staff_searchable(1); >- $type1->store(); >- is($type1->num_patrons(), 0, 'no patrons using the new attribute type yet'); >- >- my $type2 = C4::Members::AttributeTypes->new('ABC', 'ABC ID'); >- $type2->store(); >-} >- >-sub shutdown_50_list_and_remove_types : Test( shutdown => 11 ) { >- my $self = shift; >- >- my @list = C4::Members::AttributeTypes::GetAttributeTypes(); >- is_deeply(\@list, [ { code => 'ABC', description => 'ABC ID' }, >- { code => 'CAMPUSID', description => 'student ID' } ], "retrieved list of types"); >- >- my $type1 = C4::Members::AttributeTypes->fetch($list[1]->{code}); >- isa_ok($type1, 'C4::Members::AttributeTypes'); >- is($type1->code(), 'CAMPUSID', 'fetched code'); >- is($type1->description(), 'student ID', 'fetched description'); >- is($type1->authorised_value_category(), 'CAT', 'fetched authorised_value_category'); >- ok($type1->repeatable(), "fetched repeatable"); >- ok(!$type1->unique_id(), "fetched unique_id"); >- ok(!$type1->opac_display(), "fetched opac_display"); >- ok(!$type1->password_allowed(), "fetched password_allowed"); >- ok($type1->staff_searchable(), "fetched staff_searchable"); >- >- $type1->delete(); >- C4::Members::AttributeTypes->delete('ABC'); >- >- my @newlist = C4::Members::AttributeTypes::GetAttributeTypes(); >- is(scalar(@newlist), 0, "no types left after deletion"); >- >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Members/DebarMember.pm b/t/db_dependent/lib/KohaTest/Members/DebarMember.pm >deleted file mode 100644 >index bf61b8a..0000000 >--- a/t/db_dependent/lib/KohaTest/Members/DebarMember.pm >+++ /dev/null >@@ -1,44 +0,0 @@ >-package KohaTest::Members::DebarMember; >-use base qw( KohaTest::Members ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Members; >-sub testing_class { 'C4::Members' }; >- >- >-sub simple_usage : Test( 6 ) { >- my $self = shift; >- >- ok( $self->{'memberid'}, 'we have a valid memberid to test with' ); >- >- my $details = C4::Members::GetMemberDetails( $self->{'memberid'} ); >- ok( exists $details->{'flags'}, 'member details has a "flags" attribute'); >- isa_ok( $details->{'flags'}, 'HASH', 'the "flags" attribute is a hashref'); >- ok( ! $details->{'flags'}->{'DBARRED'}, 'this member is NOT debarred' ); >- >- # Now, let's debar this member and see what happens >- my $success = C4::Members::DebarMember( $self->{'memberid'}, '2099-12-31' ); >- >- ok( $success, 'we were able to debar the member' ); >- >- $details = C4::Members::GetMemberDetails( $self->{'memberid'} ); >- ok( $details->{'flags'}->{'DBARRED'}, 'this member is debarred now' ) >- or diag( Data::Dumper->Dump( [ $details->{'flags'} ], [ 'flags' ] ) ); >-} >- >-sub incorrect_usage : Test( 2 ) { >- my $self = shift; >- >- my $result = C4::Members::DebarMember(); >- ok( ! defined $result, 'DebarMember returns undef when passed no parameters' ); >- >- $result = C4::Members::DebarMember( 'this is not a borrowernumber' ); >- ok( ! defined $result, 'DebarMember returns undef when not passed a numeric argument' ); >- >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Members/GetMember.pm b/t/db_dependent/lib/KohaTest/Members/GetMember.pm >deleted file mode 100644 >index 51870ad..0000000 >--- a/t/db_dependent/lib/KohaTest/Members/GetMember.pm >+++ /dev/null >@@ -1,197 +0,0 @@ >-package KohaTest::Members::GetMember; >-use base qw( KohaTest::Members ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Members; >- >-sub testing_class { 'C4::Members' } >- >-=head2 STARTUP METHODS >- >-These get run once, before the main test methods in this module >- >-=head3 startup_create_borrower >- >-Creates a new borrower to use for these tests. Class variables that are >-used to search by are stored for easy access by the methods. >- >-=cut >- >-sub startup_create_borrower : Test( startup => 1 ) { >- my $self = shift; >- >- my $memberinfo = { >- surname => 'surname' . $self->random_string(), >- firstname => 'firstname' . $self->random_string(), >- address => 'address' . $self->random_string(), >- city => 'city' . $self->random_string(), >- cardnumber => 'card' . $self->random_string(), >- branchcode => 'U1BCG', >- categorycode => 'D', # B => Board >- dateexpiry => '2020-01-01', >- password => 'testpassword', >- userid => 'testuser', >- dateofbirth => $self->random_date(), >- }; >- >- my $borrowernumber = AddMember( %$memberinfo ); >- ok( $borrowernumber, "created member: $borrowernumber" ); >- $self->{get_new_borrowernumber} = $borrowernumber; >- $self->{get_new_cardnumber} = $memberinfo->{cardnumber}; >- $self->{get_new_firstname} = $memberinfo->{firstname}; >- $self->{get_new_userid} = $memberinfo->{userid}; >- >- return; >-} >- >-=head2 TESTING METHODS >- >-Standard test methods >- >-=head3 borrowernumber_get >- >-Validates that GetMember can search by borrowernumber >- >-=cut >- >-sub borrowernumber_get : Test( 6 ) { >- my $self = shift; >- >- ok( $self->{get_new_borrowernumber}, >- "we have a valid memberid $self->{get_new_borrowernumber} to test with" ); >- >- #search by borrowernumber >- my $results = >- C4::Members::GetMember( borrowernumber=>$self->{get_new_borrowernumber}); >- ok( $results, 'we successfully called GetMember searching by borrowernumber' ); >- >- ok( exists $results->{borrowernumber}, >- 'member details has a "borrowernumber" attribute' ); >- is( $results->{borrowernumber}, >- $self->{get_new_borrowernumber}, >- '...and it matches the created borrowernumber' >- ); >- >- ok( exists $results->{'category_type'}, "categories in the join returned values" ); >- ok( $results->{description}, "...and description is valid: $results->{description}" ); >-} >- >-=head3 cardnumber_get >- >-Validates that GetMember can search by cardnumber >- >-=cut >- >-sub cardnumber_get : Test( 6 ) { >- my $self = shift; >- >- ok( $self->{get_new_cardnumber}, >- "we have a valid cardnumber $self->{get_new_cardnumber} to test with" ); >- >- #search by cardnumber >- my $results = C4::Members::GetMember( 'cardnumber'=>$self->{get_new_cardnumber} ); >- ok( $results, 'we successfully called GetMember searching by cardnumber' ); >- >- ok( exists $results->{cardnumber}, 'member details has a "cardnumber" attribute' ); >- is( $results->{cardnumber}, >- $self->{get_new_cardnumber}, >- '..and it matches the created cardnumber' >- ); >- >- ok( exists $results->{'category_type'}, "categories in the join returned values" ); >- ok( $results->{description}, "...and description is valid: $results->{description}" ); >-} >- >-=head3 firstname_get >- >-Validates that GetMember can search by firstname. >-Note that only the first result is used. >- >-=cut >- >-sub firstname_get : Test( 6 ) { >- my $self = shift; >- >- ok( $self->{get_new_firstname}, >- "we have a valid firstname $self->{get_new_firstname} to test with" ); >- >- ##search by firstname >- my $results = C4::Members::GetMember( 'firstname'=>$self->{get_new_firstname} ); >- ok( $results, 'we successfully called GetMember searching by firstname' ); >- >- ok( exists $results->{firstname}, 'member details has a "firstname" attribute' ); >- is( $results->{'firstname'}, >- $self->{get_new_firstname}, >- '..and it matches the created firstname' >- ); >- >- ok( exists $results->{'category_type'}, "categories in the join returned values" ); >- ok( $results->{description}, "...and description is valid: $results->{description}" ); >-} >- >-=head3 userid_get >- >-Validates that GetMember can search by userid. >- >-=cut >- >-sub userid_get : Test( 6 ) { >- my $self = shift; >- >- ok( $self->{get_new_userid}, >- "we have a valid userid $self->{get_new_userid} to test with" ); >- >- #search by userid >- my $results = C4::Members::GetMember( 'userid'=>$self->{get_new_userid} ); >- ok( $results, 'we successfully called GetMember searching by userid' ); >- >- ok( exists $results->{'userid'}, 'member details has a "userid" attribute' ); >- is( $results->{userid}, >- $self->{get_new_userid}, >- '..and it matches the created userid' >- ); >- >- ok( exists $results->{'category_type'}, "categories in the join returned values" ); >- ok( $results->{description}, "...and description is valid: $results->{description}" ); >-} >- >-=head3 missing_params >- >-Validates that GetMember returns undef when no parameters are passed to it >- >-=cut >- >-sub missing_params : Test( 1 ) { >- my $self = shift; >- >- my $results = C4::Members::GetMember(); >- >- ok( !defined $results, 'returned undef when no parameters passed' ); >- >-} >- >-=head2 SHUTDOWN METHODS >- >-These get run once, after the main test methods in this module >- >-=head3 shutdown_remove_borrower >- >-Remove the new borrower information that was created in the startup method >- >-=cut >- >-sub shutdown_remove_borrower : Test( shutdown => 0 ) { >- my $self = shift; >- >- delete $self->{get_new_borrowernumber}; >- delete $self->{get_new_cardnumber}; >- delete $self->{get_new_firstname}; >- delete $self->{get_new_userid}; >- >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Members/GetMemberDetails.pm b/t/db_dependent/lib/KohaTest/Members/GetMemberDetails.pm >deleted file mode 100644 >index e93742b..0000000 >--- a/t/db_dependent/lib/KohaTest/Members/GetMemberDetails.pm >+++ /dev/null >@@ -1,150 +0,0 @@ >-package KohaTest::Members::GetMemberDetails; >-use base qw( KohaTest::Members ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Members; >- >-sub testing_class { 'C4::Members' } >- >-=head3 STARTUP METHODS >- >-These are run once, before the main test methods in this module. >- >-=head2 startup_create_detailed_borrower >- >-Creates a new borrower to be used by the testing methods. Also >-populates the class hash with values to be compared from the database >-retrieval. >- >-=cut >- >-sub startup_create_detailed_borrower : Test( startup => 2 ) { >- my $self = shift; >- my ( $description, $type, $amount, $user ); >- >- my $memberinfo = { >- surname => 'surname' . $self->random_string(), >- firstname => 'firstname' . $self->random_string(), >- address => 'address' . $self->random_string(), >- city => 'city' . $self->random_string(), >- cardnumber => 'card' . $self->random_string(), >- branchcode => 'CPL', >- categorycode => 'B', >- dateexpiry => '2020-01-01', >- password => 'testpassword', >- userid => 'testuser', >- flags => '0', >- dateofbirth => $self->random_date(), >- }; >- >- my $borrowernumber = AddMember( %$memberinfo ); >- ok( $borrowernumber, "created member: $borrowernumber" ); >- $self->{detail_borrowernumber} = $borrowernumber; >- $self->{detail_cardnumber} = $memberinfo->{cardnumber}; >- >- #values for adding a record to accounts >- $description = 'Test account'; >- $type = 'M'; >- $amount = 5.00; >- $user = ''; >- >- my $acct_added = >- C4::Accounts::manualinvoice( $borrowernumber, undef, $description, $type, $amount, >- $user ); >- >- ok( $acct_added == 0, 'added account for borrower' ); >- >- $self->{amountoutstanding} = $amount; >- >- return; >-} >- >-=head2 TESTING METHODS >- >-=head3 borrower_detail_get >- >-Tests the functionality of the GetMemberDetails method in C4::Members. >-Validates the join on categories table works as well as the extra fields >-the method gets from outside of either the borrowers and categories table like >-amountoutstanding and user flags. >- >-=cut >- >-sub borrower_detail_get : Test( 8 ) { >- my $self = shift; >- >- ok( $self->{detail_borrowernumber}, >- 'we have a valid detailed borrower to test with' ); >- >- my $details = C4::Members::GetMemberDetails( $self->{detail_borrowernumber} ); >- ok( $details, 'we successfully called GetMemberDetails' ); >- ok( exists $details->{categorycode}, >- 'member details has a "categorycode" attribute' ); >- ok( $details->{categorycode}, '...and it is set to something' ); >- >- ok( exists $details->{category_type}, "categories in the join returned values" ); >- >- ok( $details->{category_type}, '...and category_type is valid' ); >- >- ok( $details->{amountoutstanding}, 'an amountoutstanding exists' ); >- is( $details->{amountoutstanding}, >- $self->{amountoutstanding}, >- '...and matches inserted account record' >- ); >- >-} >- >-=head3 cardnumber_detail_get >- >-This method tests the capability of GetMemberDetails to search on cardnumber. There doesn't seem to be any >-current calls to GetMemberDetail using cardnumber though, so this test may not be necessary. >- >-=cut >- >-sub cardnumber_detail_get : Test( 8 ) { >- my $self = shift; >- >- ok( $self->{detail_cardnumber}, >- "we have a valid detailed borrower to test with $self->{detail_cardnumber}" ); >- >- my $details = C4::Members::GetMemberDetails( undef, $self->{detail_cardnumber} ); >- ok( $details, 'we successfully called GetMemberDetails' ); >- ok( exists $details->{categorycode}, >- "member details has a 'categorycode' attribute $details->{categorycode}" ); >- ok( $details->{categorycode}, '...and it is set to something' ); >- >- ok( exists $details->{category_type}, "categories in the join returned values" ); >- >- ok( $details->{category_type}, '...and category_type is valid' ); >- >-#FIXME These 2 methods will fail as borrowernumber is not set in GetMemberDetails when cardnumber is used instead. >-#ok( $details->{amountoutstanding}, 'an amountoutstanding exists' ); >-#is( $details->{amountoutstanding}, $self->{amountoutstanding}, '...and matches inserted account record' ); >-} >- >-=head2 SHUTDOWN METHDOS >- >-These get run once, after the main test methods in this module. >- >-=head3 shutdown_remove_new_borrower >- >-Removes references in the Class to the new borrower created >-in the startup methods. >- >-=cut >- >-sub shutdown_remove_new_borrower : Test( shutdown => 0 ) { >- my $self = shift; >- >- delete $self->{detail_borrowernumber}; >- delete $self->{detail_cardnumber}; >- delete $self->{amountoutstanding}; >- >- return; >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Members/ModMember.pm b/t/db_dependent/lib/KohaTest/Members/ModMember.pm >deleted file mode 100644 >index 876677f..0000000 >--- a/t/db_dependent/lib/KohaTest/Members/ModMember.pm >+++ /dev/null >@@ -1,103 +0,0 @@ >-package KohaTest::Members::ModMember; >-use base qw( KohaTest::Members ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Members; >-sub testing_class { 'C4::Members' }; >- >- >-sub a_simple_usage : Test( 7 ) { >- my $self = shift; >- >- ok( $self->{'memberid'}, 'we have a valid memberid to test with' ); >- >- my $details = C4::Members::GetMemberDetails( $self->{'memberid'} ); >- ok( exists $details->{'dateofbirth'}, 'member details has a "dateofbirth" attribute'); >- ok( $details->{'dateofbirth'}, '...and it is set to something' ); >- >- my $new_date_of_birth = $self->random_date(); >- like( $new_date_of_birth, qr(^\d\d\d\d-\d\d-\d\d$), 'The new date of birth is a yyyy-mm-dd' ); >- >- my $success = C4::Members::ModMember( >- borrowernumber => $self->{'memberid'}, >- dateofbirth => $new_date_of_birth >- ); >- >- ok( $success, 'we successfully called ModMember' ); >- >- $details = C4::Members::GetMemberDetails( $self->{'memberid'} ); >- ok( exists $details->{'dateofbirth'}, 'member details still has a "dateofbirth" attribute'); >- is( $details->{'dateofbirth'}, $new_date_of_birth, '...and it is set to the new_date_of_birth' ); >- >-} >- >-sub incorrect_usage : Test( 1 ) { >- my $self = shift; >- >- local $TODO = 'ModMember does not fail gracefully yet'; >- >- my $result = C4::Members::ModMember(); >- ok( ! defined $result, 'ModMember returns false when passed no parameters' ); >- >-} >- >-=head2 preserve_dates >- >-In bug 2284, it was determined that a Member's dateofbirth could be >-erased by a call to ModMember if no date_of_birth was passed in. Three >-date fields (dateofbirth, dateexpiry ,and dateenrolled) are treated >-differently than other fields by ModMember. This test method calls >-ModMember with none of the date fields set to ensure that they are not >-overwritten. >- >-=cut >- >- >-sub preserve_dates : Test( 18 ) { >- my $self = shift; >- >- ok( $self->{'memberid'}, 'we have a valid memberid to test with' ); >- >- my %date_fields = ( >- dateofbirth => $self->random_date(), >- dateexpiry => $self->random_date(), >- dateenrolled => $self->random_date(), >- ); >- >- # stage our member with valid dates in all of the date fields >- my $success = C4::Members::ModMember( >- borrowernumber => $self->{'memberid'}, >- %date_fields, >- ); >- ok( $success, 'succefully set the date fields.' ); >- >- # make sure that we successfully set the date fields. They're not undef. >- my $details = C4::Members::GetMemberDetails( $self->{'memberid'} ); >- foreach my $date_field ( keys %date_fields ) { >- ok( exists $details->{$date_field}, qq(member details has a "$date_field" attribute) ); >- ok( $details->{$date_field}, '...and it is set to something true' ); >- is( $details->{$date_field}, $date_fields{$date_field}, '...and it is set to what we set it' ); >- } >- >- # call ModMember to update the firstname. Notice that we're not >- # updating any date fields. >- $success = C4::Members::ModMember( >- borrowernumber => $self->{'memberid'}, >- firstname => $self->random_string, >- ); >- ok( $success, 'we successfully called ModMember' ); >- >- # make sure that none of the date fields have been molested by our call to ModMember. >- $details = C4::Members::GetMemberDetails( $self->{'memberid'} ); >- foreach my $date_field ( keys %date_fields ) { >- ok( exists $details->{$date_field}, qq(member details still has a "$date_field" attribute) ); >- is( $details->{$date_field}, $date_fields{$date_field}, '...and it is set to the expected value' ); >- } >- >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Message.pm b/t/db_dependent/lib/KohaTest/Message.pm >deleted file mode 100644 >index d1d822f..0000000 >--- a/t/db_dependent/lib/KohaTest/Message.pm >+++ /dev/null >@@ -1,52 +0,0 @@ >-package KohaTest::Message; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Message; >-sub testing_class { 'C4::Message' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( >- new >- find >- find_last_message >- enqueue >- update >- metadata >- render_metadata >- append >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-sub test_metadata : Test( 1 ) { >- my $self = shift; >- my $message = C4::Message->new; >- $message->metadata({ >- header => "Header", >- body => [], >- footer => "Footer", >- }); >- like($message->{metadata}, qr{^---}, "The metadata attribute should be serialized as YAML."); >-} >- >-sub test_append : Test( 1 ) { >- my $self = shift; >- my $message = C4::Message->new; >- $message->metadata({ >- header => "Header", >- body => [], >- footer => "Footer", >- }); >- $message->append("foo"); >- is($message->metadata->{body}->[0], "foo", "Appending a string should add an element to metadata.body."); >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/NewsChannels.pm b/t/db_dependent/lib/KohaTest/NewsChannels.pm >deleted file mode 100644 >index 507677e..0000000 >--- a/t/db_dependent/lib/KohaTest/NewsChannels.pm >+++ /dev/null >@@ -1,28 +0,0 @@ >-package KohaTest::NewsChannels; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::NewsChannels; >-sub testing_class { 'C4::NewsChannels' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( >- add_opac_new >- upd_opac_new >- del_opac_new >- get_opac_new >- get_opac_news >- GetNewsToDisplay >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >- >diff --git a/t/db_dependent/lib/KohaTest/Overdues.pm b/t/db_dependent/lib/KohaTest/Overdues.pm >deleted file mode 100644 >index 5890d2b..0000000 >--- a/t/db_dependent/lib/KohaTest/Overdues.pm >+++ /dev/null >@@ -1,39 +0,0 @@ >-package KohaTest::Overdues; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Overdues; >-sub testing_class { 'C4::Overdues' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( Getoverdues >- checkoverdues >- CalcFine >- GetSpecialHolidays >- GetRepeatableHolidays >- GetWdayFromItemnumber >- GetIssuesIteminfo >- UpdateFine >- BorType >- GetFine >- NumberNotifyId >- AmountNotify >- GetItems >- CheckBorrowerDebarred >- CheckItemNotify >- GetOverduesForBranch >- AddNotifyLine >- RemoveNotifyLine >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >- >diff --git a/t/db_dependent/lib/KohaTest/Overdues/GetBranchcodesWithOverdueRules.pm b/t/db_dependent/lib/KohaTest/Overdues/GetBranchcodesWithOverdueRules.pm >deleted file mode 100644 >index 4ff8db4..0000000 >--- a/t/db_dependent/lib/KohaTest/Overdues/GetBranchcodesWithOverdueRules.pm >+++ /dev/null >@@ -1,59 +0,0 @@ >-package KohaTest::Overdues::GetBranchcodesWithOverdueRules; >-use base qw( KohaTest::Overdues ); >- >-use strict; >-use warnings; >- >-use C4::Overdues; >-use Test::More; >- >-sub my_branch_has_no_rules : Tests( 2 ) { >- my $self = shift; >- >- ok( $self->{'branchcode'}, "we're looking for branch $self->{'branchcode'}" ); >- >- my @branches = C4::Overdues::GetBranchcodesWithOverdueRules; >- my @found_branches = grep { $_ eq $self->{'branchcode'} } @branches; >- is( scalar @found_branches, 0, '...and it is not in the list of branches') >- >-} >- >-sub my_branch_has_overdue_rules : Tests( 3 ) { >- my $self = shift; >- >- ok( $self->{'branchcode'}, "we're looking for branch $self->{'branchcode'}" ); >- >- my $dbh = C4::Context->dbh(); >- my $sql = <<'END_SQL'; >-INSERT INTO overduerules >-(branchcode, categorycode, >-delay1, letter1, debarred1, >-delay2, letter2, debarred2, >-delay3, letter3, debarred3) >-VALUES >-( ?, ?, >-?, ?, ?, >-?, ?, ?, >-?, ?, ?) >-END_SQL >- >- my $sth = $dbh->prepare($sql); >- my $success = $sth->execute( $self->{'branchcode'}, $self->random_string(2), >- 1, $self->random_string(), 0, >- 5, $self->random_string(), 0, >- 9, $self->random_string(), 1, ); >- ok( $success, '...and we have successfully given it an overdue rule' ); >- >- my @branches = C4::Overdues::GetBranchcodesWithOverdueRules; >- my @found_branches = grep { $_ eq $self->{'branchcode'} } @branches; >- is( scalar @found_branches, 1, '...and it IS in the list of branches.') >- >-} >- >-1; >- >- >- >- >- >- >diff --git a/t/db_dependent/lib/KohaTest/Overdues/GetOverdues.pm b/t/db_dependent/lib/KohaTest/Overdues/GetOverdues.pm >deleted file mode 100644 >index 3cfc438..0000000 >--- a/t/db_dependent/lib/KohaTest/Overdues/GetOverdues.pm >+++ /dev/null >@@ -1,126 +0,0 @@ >-package KohaTest::Overdues::GetOverdues; >-use base qw( KohaTest::Overdues ); >- >-use strict; >-use warnings; >- >-use C4::Overdues; >-use Test::More; >- >-=head3 create_overdue_item >- >-=cut >- >-sub startup_60_create_overdue_item : Test( startup => 17 ) { >- my $self = shift; >- >- $self->add_biblios( add_items => 1 ); >- >- my $biblionumber = $self->{'biblios'}[0]; >- ok( $biblionumber, 'biblionumber' ); >- my @biblioitems = C4::Biblio::GetBiblioItemByBiblioNumber( $biblionumber ); >- ok( scalar @biblioitems > 0, 'there is at least one biblioitem' ); >- my $biblioitemnumber = $biblioitems[0]->{'biblioitemnumber'}; >- ok( $biblioitemnumber, 'got a biblioitemnumber' ); >- >- my $items = C4::Items::GetItemsByBiblioitemnumber( $biblioitemnumber); >- >- my $item = $items->[0]; >- ok( $item->{'itemnumber'}, 'item number' ); >- $self->{'overdueitemnumber'} = $item->{'itemnumber'}; >- >- # let's use the database to do date math for us. >- # This is a US date, but that's how C4::Dates likes it, apparently. >- my $dbh = C4::Context->dbh(); >- my $date_list = $dbh->selectcol_arrayref( q( select DATE_FORMAT( FROM_DAYS( TO_DAYS( NOW() ) - 6 ), '%m/%d/%Y' ) ) ); >- my $six_days_ago = shift( @$date_list ); >- >- my $duedate = C4::Dates->new( $six_days_ago ); >- # diag( Data::Dumper->Dump( [ $duedate ], [ 'duedate' ] ) ); >- >- ok( $item->{'barcode'}, 'barcode' ) >- or diag( Data::Dumper->Dump( [ $item ], [ 'item' ] ) ); >- # my $item_from_barcode = C4::Items::GetItem( undef, $item->{'barcode'} ); >- # diag( Data::Dumper->Dump( [ $item_from_barcode ], [ 'item_from_barcode' ] ) ); >- >- ok( $self->{'memberid'}, 'memberid' ); >- my $borrower = C4::Members::GetMember( borrowernumber=>$self->{'memberid'} ); >- ok( $borrower->{'borrowernumber'}, 'borrowernumber' ); >- >- my ( $issuingimpossible, $needsconfirmation ) = C4::Circulation::CanBookBeIssued( $borrower, $item->{'barcode'}, $duedate, 0 ); >- # diag( Data::Dumper->Dump( [ $issuingimpossible, $needsconfirmation ], [ qw( issuingimpossible needsconfirmation ) ] ) ); >- is( keys %$issuingimpossible, 0, 'issuing is not impossible' ); >- is( keys %$needsconfirmation, 0, 'issuing needs no confirmation' ); >- >- C4::Circulation::AddIssue( $borrower, $item->{'barcode'}, $duedate ); >-} >- >-sub basic_usage : Test( 2 ) { >- my $self = shift; >- >- my $overdues = C4::Overdues::Getoverdues(); >- isa_ok( $overdues, 'ARRAY' ); >- is( scalar @$overdues, 1, 'found our one overdue book' ); >-} >- >-sub limit_minimum_and_maximum : Test( 2 ) { >- my $self = shift; >- >- my $overdues = C4::Overdues::Getoverdues( { minimumdays => 1, maximumdays => 100 } ); >- isa_ok( $overdues, 'ARRAY' ); >- is( scalar @$overdues, 1, 'found our one overdue book' ); >-} >- >-sub limit_and_do_not_find_it : Test( 2 ) { >- my $self = shift; >- >- my $overdues = C4::Overdues::Getoverdues( { minimumdays => 1, maximumdays => 2 } ); >- isa_ok( $overdues, 'ARRAY' ); >- is( scalar @$overdues, 0, 'there are no overdue books in that range.' ); >-} >- >-=pod >- >-sub run_overduenotices_script : Test( 1 ) { >- my $self = shift; >- >- # make sure member wants alerts >- C4::Members::Attributes::UpdateBorrowerAttribute($self->{'memberid'}, >- { code => 'PREDEmail', >- value => '1' } ); >- >- # we're screwing with C4::Circulation::GetUpcomingIssues by passing in a negative number. >- C4::Members::Attributes::UpdateBorrowerAttribute($self->{'memberid'}, >- { code => 'PREDDAYS', >- value => '-6' } ); >- >- >- my $before_count = $self->count_message_queue(); >- >- my $output = qx( ../misc/cronjobs/advance_notices.pl -c ); >- >- my $after_count = $self->count_message_queue(); >- is( $after_count, $before_count + 1, 'there is one more message in the queue than there used to be.' ) >- or diag $output; >- >-} >- >- >-=cut >- >-sub count_message_queue { >- my $self = shift; >- >- my $dbh = C4::Context->dbh(); >- my $statement = q( select count(0) from message_queue where status = 'pending' ); >- my $countlist = $dbh->selectcol_arrayref( $statement ); >- return $countlist->[0]; >-} >- >-1; >- >- >- >- >- >- >diff --git a/t/db_dependent/lib/KohaTest/Print.pm b/t/db_dependent/lib/KohaTest/Print.pm >deleted file mode 100644 >index f720fee..0000000 >--- a/t/db_dependent/lib/KohaTest/Print.pm >+++ /dev/null >@@ -1,21 +0,0 @@ >-package KohaTest::Print; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Print; >-sub testing_class { 'C4::Print' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( NetworkPrint ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >- >diff --git a/t/db_dependent/lib/KohaTest/Reserves.pm b/t/db_dependent/lib/KohaTest/Reserves.pm >deleted file mode 100644 >index 6416ac3..0000000 >--- a/t/db_dependent/lib/KohaTest/Reserves.pm >+++ /dev/null >@@ -1,43 +0,0 @@ >-package KohaTest::Reserves; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Reserves; >-sub testing_class { 'C4::Reserves' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( AddReserve >- GetReservesFromBiblionumber >- GetReservesFromItemnumber >- GetReservesFromBorrowernumber >- GetReserveCount >- GetOtherReserves >- GetReserveFee >- GetReservesToBranch >- GetReservesForBranch >- CheckReserves >- CancelReserve >- ModReserve >- ModReserveFill >- ModReserveStatus >- ModReserveAffect >- ModReserveCancelAll >- ModReserveMinusPriority >- MoveReserve >- GetReserveInfo >- _FixPriority >- _Findgroupreserve >- ReserveSlip >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >- >diff --git a/t/db_dependent/lib/KohaTest/SMS.pm b/t/db_dependent/lib/KohaTest/SMS.pm >deleted file mode 100644 >index 00af101..0000000 >--- a/t/db_dependent/lib/KohaTest/SMS.pm >+++ /dev/null >@@ -1,23 +0,0 @@ >-package KohaTest::SMS; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::SMS; >-sub testing_class { 'C4::SMS' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( send_sms >- driver >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >- >diff --git a/t/db_dependent/lib/KohaTest/SMS/send_sms.pm b/t/db_dependent/lib/KohaTest/SMS/send_sms.pm >deleted file mode 100644 >index d6bbb64..0000000 >--- a/t/db_dependent/lib/KohaTest/SMS/send_sms.pm >+++ /dev/null >@@ -1,25 +0,0 @@ >-package KohaTest::SMS::send_sms; >-use base qw( KohaTest::SMS ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::SMS; >-sub testing_class { 'C4::SMS' }; >- >- >-sub send_a_message : Test( 1 ) { >- my $self = shift; >- >- my $success = C4::SMS->send_sms( { destination => '+1 212-555-1111', >- message => 'This is the message', >- driver => 'Test' } ); >- >- ok( $success, "send_sms returned a true: $success" ); >- >-} >- >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Scripts.pm b/t/db_dependent/lib/KohaTest/Scripts.pm >deleted file mode 100644 >index f44274d..0000000 >--- a/t/db_dependent/lib/KohaTest/Scripts.pm >+++ /dev/null >@@ -1,18 +0,0 @@ >-package KohaTest::Scripts; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Search; >-sub testing_class { return; }; >- >-# Since this is an abstract base class, this prevents these tests from >-# being run directly unless we're testing a subclass. It just makes >-# things faster. >-__PACKAGE__->SKIP_CLASS( 1 ); >- >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Scripts/longoverdue.pm b/t/db_dependent/lib/KohaTest/Scripts/longoverdue.pm >deleted file mode 100644 >index e00fb0c..0000000 >--- a/t/db_dependent/lib/KohaTest/Scripts/longoverdue.pm >+++ /dev/null >@@ -1,97 +0,0 @@ >-package KohaTest::Scripts::longoverdue; >-use base qw( KohaTest::Scripts ); >- >-use strict; >-use warnings; >- >-use Test::More; >-use Time::localtime; >- >- >-=head2 STARTUP METHODS >- >-These get run once, before the main test methods in this module >- >-=head3 create_overdue_item >- >-=cut >- >-sub create_overdue_item : Test( startup => 12 ) { >- my $self = shift; >- >- $self->add_biblios( add_items => 1 ); >- >- my $biblionumber = $self->{'biblios'}[0]; >- ok( $biblionumber, 'biblionumber' ); >- my @biblioitems = C4::Biblio::GetBiblioItemByBiblioNumber( $biblionumber ); >- ok( scalar @biblioitems > 0, 'there is at least one biblioitem' ); >- my $biblioitemnumber = $biblioitems[0]->{'biblioitemnumber'}; >- ok( $biblioitemnumber, 'got a biblioitemnumber' ); >- >- my $items = C4::Items::GetItemsByBiblioitemnumber( $biblioitemnumber); >- >- my $itemnumber = $items->[0]->{'itemnumber'}; >- ok( $items->[0]->{'itemnumber'}, 'item number' ); >- >- $self->{'overdueitemnumber'} = $itemnumber; >- >-} >- >-sub set_overdue_item_lost : Test( 13 ) { >- my $self = shift; >- >- my $item = C4::Items::GetItem( $self->{'overdueitemnumber'} ); >- is( $item->{'itemnumber'}, $self->{'overdueitemnumber'}, 'itemnumber' ); >- >- ok( exists $item->{'itemlost'}, 'itemlost exists' ); >- ok( ! $item->{'itemlost'}, 'item is not lost' ); >- >- # This is a US date, but that's how C4::Dates likes it, apparently. >- my $duedatestring = sprintf( '%02d/%02d/%04d', >- localtime->mon() + 1, >- localtime->mday(), >- localtime->year() + 1900 - 1, # it was due a year ago. >- ); >- my $duedate = C4::Dates->new( $duedatestring ); >- # diag( Data::Dumper->Dump( [ $duedate ], [ 'duedate' ] ) ); >- >- ok( $item->{'barcode'}, 'barcode' ) >- or diag( Data::Dumper->Dump( [ $item ], [ 'item' ] ) ); >- # my $item_from_barcode = C4::Items::GetItem( undef, $item->{'barcode'} ); >- # diag( Data::Dumper->Dump( [ $item_from_barcode ], [ 'item_from_barcode' ] ) ); >- >- my $borrower = C4::Members::GetMember( borrowernumber => $self->{'memberid'} ); >- ok( $borrower->{'borrowernumber'}, 'borrowernumber' ); >- >- my ( $issuingimpossible, $needsconfirmation ) = C4::Circulation::CanBookBeIssued( $borrower, $item->{'barcode'}, $duedate, 0 ); >- # diag( Data::Dumper->Dump( [ $issuingimpossible, $needsconfirmation ], [ qw( issuingimpossible needsconfirmation ) ] ) ); >- is( keys %$issuingimpossible, 0, 'issuing is not impossible' ); >- is( keys %$needsconfirmation, 0, 'issuing needs no confirmation' ); >- >- my $issue_due_date = C4::Circulation::AddIssue( $borrower, $item->{'barcode'}, $duedate ); >- ok( $issue_due_date, 'due date' ); >- is( $issue_due_date, $duedate, 'AddIssue returned the same date we passed to it' ); >- >- # I have to make this in a different format since that's how the database holds it. >- my $duedateyyyymmdd = sprintf( '%04d-%02d-%02d', >- localtime->year() + 1900 - 1, # it was due a year ago. >- localtime->mon() + 1, >- localtime->mday(), >- ); >- >- my $issued_item = C4::Items::GetItem( $self->{'overdueitemnumber'} ); >- is( $issued_item->{'onloan'}, $duedateyyyymmdd, "the item is checked out and due $duedatestring" ); >- is( $issued_item->{'itemlost'}, 0, 'the item is not lost' ); >- # diag( Data::Dumper->Dump( [ $issued_item ], [ 'issued_item' ] ) ); >- >- qx( ../misc/cronjobs/longoverdue.pl --lost 90=2 --confirm ); >- >- my $lost_item = C4::Items::GetItem( $self->{'overdueitemnumber'} ); >- is( $lost_item->{'onloan'}, $duedateyyyymmdd, "the item is checked out and due $duedatestring" ); >- is( $lost_item->{'itemlost'}, 2, 'the item is lost' ); >- # diag( Data::Dumper->Dump( [ $lost_item ], [ 'lost_item' ] ) ); >- >-} >- >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Search.pm b/t/db_dependent/lib/KohaTest/Search.pm >deleted file mode 100644 >index 2cf4e56..0000000 >--- a/t/db_dependent/lib/KohaTest/Search.pm >+++ /dev/null >@@ -1,31 +0,0 @@ >-package KohaTest::Search; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Search; >-sub testing_class { 'C4::Search' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( >- FindDuplicate >- SimpleSearch >- getRecords >- pazGetRecords >- _remove_stopwords >- _detect_truncation >- _build_stemmed_operand >- _build_weighted_query >- buildQuery >- searchResults >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Search/SimpleSearch.pm b/t/db_dependent/lib/KohaTest/Search/SimpleSearch.pm >deleted file mode 100644 >index 95324f2..0000000 >--- a/t/db_dependent/lib/KohaTest/Search/SimpleSearch.pm >+++ /dev/null >@@ -1,140 +0,0 @@ >-package KohaTest::Search::SimpleSearch; >-use base qw( KohaTest::Search ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Search; >-use C4::Biblio; >- >-=head2 STARTUP METHODS >- >-These get run once, before the main test methods in this module >- >-=head3 insert_test_data >- >-=cut >- >-sub insert_test_data : Test( startup => 71 ) { >- my $self = shift; >- >- # get original 'Finn Test' count >- my $query = 'Finn Test'; >- my ( $error, $results ) = SimpleSearch( $query ); >- $self->{'orig_finn_test_hits'} = scalar(@$results); >- >- # I'm going to add a bunch of biblios so that I can search for them. >- $self->add_biblios( count => 10, >- add_items => 1 ); >- >-} >- >-=head2 STARTUP METHODS >- >-standard test methods >- >-=head3 basic_test >- >-basic usage. >- >-=cut >- >-sub basic_test : Test( 2 ) { >- my $self = shift; >- >- my $query = 'test'; >- >- my ( $error, $results ) = SimpleSearch( $query ); >- ok( ! defined $error, 'no error found during search' ); >- like( $results->[0], qr/$query/i, 'the result seems to match the query' ) >- or diag( Data::Dumper->Dump( [ $results ], [ 'results' ] ) ); >- >-} >- >-=head3 basic_test_with_server >- >-Test the usage where we specify no limits, but we do specify a server. >- >-=cut >- >-sub basic_test_with_server : Test( 2 ) { >- my $self = shift; >- >- my $query = 'test'; >- >- my ( $error, $results ) = SimpleSearch( $query, undef, undef, [ 'biblioserver' ] ); >- ok( ! defined $error, 'no error found during search' ); >- like( $results->[0], qr/$query/i, 'the result seems to match the query' ) >- or diag( Data::Dumper->Dump( [ $results ], [ 'results' ] ) ); >- >-} >- >- >-=head3 basic_test_no_results >- >-Make sure we get back an empty listref when there are no results. >- >-=cut >- >-sub basic_test_no_results : Test( 3 ) { >- my $self = shift; >- >- my $query = 'This string is almost guaranteed to not match anything.'; >- >- my ( $error, $results ) = SimpleSearch( $query ); >- ok( ! defined $error, 'no error found during search' ); >- isa_ok( $results, 'ARRAY' ); >- is( scalar( @$results ), 0, 'an empty list was returned.' ) >- or diag( Data::Dumper->Dump( [ $results ], [ 'results' ] ) ); >-} >- >-=head3 limits >- >-check that the SimpleTest method limits the number of results returned. >- >-=cut >- >-sub limits : Test( 8 ) { >- my $self = shift; >- >- my $query = 'Finn Test'; >- >- { >- my ( $error, $results ) = SimpleSearch( $query ); >- ok( ! defined $error, 'no error found during search' ); >- my $expected_hits = 10 + $self->{'orig_finn_test_hits'}; >- is( scalar @$results, $expected_hits, "found all $expected_hits results." ) >- or diag( Data::Dumper->Dump( [ $results ], [ 'results' ] ) ); >- } >- >- my $offset = 4; >- { >- my ( $error, $results ) = SimpleSearch( $query, $offset ); >- ok( ! defined $error, 'no error found during search' ); >- my $expected_hits = 6 + $self->{'orig_finn_test_hits'}; >- is( scalar @$results, $expected_hits, "found $expected_hits results." ) >- or diag( Data::Dumper->Dump( [ $results ], [ 'results' ] ) ); >- } >- >- my $max_results = 2; >- { >- my ( $error, $results ) = SimpleSearch( $query, $offset, $max_results ); >- ok( ! defined $error, 'no error found during search' ); >- is( scalar @$results, $max_results, "found $max_results results." ) >- or diag( Data::Dumper->Dump( [ $results ], [ 'results' ] ) ); >- } >- >- { >- my ( $error, $results ) = SimpleSearch( $query, 0, $max_results ); >- ok( ! defined $error, 'no error found during search' ); >- is( scalar @$results, $max_results, "found $max_results results." ) >- or diag( Data::Dumper->Dump( [ $results ], [ 'results' ] ) ); >- } >- >- >-} >- >- >-1; >diff --git a/t/db_dependent/lib/KohaTest/Serials.pm b/t/db_dependent/lib/KohaTest/Serials.pm >deleted file mode 100644 >index e7bb249..0000000 >--- a/t/db_dependent/lib/KohaTest/Serials.pm >+++ /dev/null >@@ -1,65 +0,0 @@ >-package KohaTest::Serials; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Serials; >-sub testing_class { 'C4::Serials' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( GetSuppliersWithLateIssues >- GetLateIssues >- GetSubscriptionHistoryFromSubscriptionId >- GetSerialStatusFromSerialId >- GetSerialInformation >- AddItem2Serial >- UpdateClaimdateIssues >- GetSubscription >- GetFullSubscription >- PrepareSerialsData >- GetSubscriptionsFromBiblionumber >- GetFullSubscriptionsFromBiblionumber >- GetSubscriptions >- GetSerials >- GetSerials2 >- GetLatestSerials >- GetNextSeq >- GetSeq >- GetExpirationDate >- CountSubscriptionFromBiblionumber >- ModSubscriptionHistory >- ModSerialStatus >- ModSubscription >- NewSubscription >- ReNewSubscription >- NewIssue >- ItemizeSerials >- HasSubscriptionExpired >- DelSubscription >- DelIssue >- GetLateOrMissingIssues >- removeMissingIssue >- updateClaim >- getsupplierbyserialid >- check_routing >- addroutingmember >- reorder_members >- delroutingmember >- getroutinglist >- countissuesfrom >- abouttoexpire >- in_array >- GetNextDate >- itemdata >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >- >diff --git a/t/db_dependent/lib/KohaTest/Suggestions.pm b/t/db_dependent/lib/KohaTest/Suggestions.pm >deleted file mode 100644 >index 0c74717..0000000 >--- a/t/db_dependent/lib/KohaTest/Suggestions.pm >+++ /dev/null >@@ -1,30 +0,0 @@ >-package KohaTest::Suggestions; >-use base qw( KohaTest ); >- >-use strict; >-use warnings; >- >-use Test::More; >- >-use C4::Suggestions; >-sub testing_class { 'C4::Suggestions' }; >- >- >-sub methods : Test( 1 ) { >- my $self = shift; >- my @methods = qw( SearchSuggestion >- GetSuggestion >- GetSuggestionFromBiblionumber >- GetSuggestionByStatus >- CountSuggestion >- NewSuggestion >- ModStatus >- ConnectSuggestionAndBiblio >- DelSuggestion >- ); >- >- can_ok( $self->testing_class, @methods ); >-} >- >-1; >- >-- >1.7.10.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 10539
:
19389
|
19390
|
19564
|
19565
|
20786
|
20787
| 20795 |
20796