[Koha-patches] [PATCH] Bug 1953 [1/3]: test suite improvements
Andrew Moore
andrew.moore at liblime.com
Fri Jul 25 18:55:11 CEST 2008
Here are a few improvments to the test suite to make it easier to write some tests
for C4::Items
I extracted "tomorrow" and "yesterday" methods from a test module into the base class
so that they could be used by multiple test modules
Adding callnumber to items added in the test suite.
I recatored KohaTest::add_biblios a bit to remove the manual count of the number of
MARC::Fields that were added.
---
t/lib/KohaTest.pm | 75 ++++++++++++++++++++++++-----
t/lib/KohaTest/Acquisition/GetHistory.pm | 14 +----
2 files changed, 65 insertions(+), 24 deletions(-)
diff --git a/t/lib/KohaTest.pm b/t/lib/KohaTest.pm
index 720017a..7da8361 100644
--- a/t/lib/KohaTest.pm
+++ b/t/lib/KohaTest.pm
@@ -20,6 +20,7 @@ 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
@@ -475,6 +476,50 @@ sub random_date {
}
+=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,
@@ -507,21 +552,25 @@ sub add_biblios {
foreach my $counter ( 1..$param{'count'} ) {
my $marcrecord = MARC::Record->new();
isa_ok( $marcrecord, 'MARC::Record' );
- my $appendedfieldscount = $marcrecord->append_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',
- a => 'CPL',
- b => 'CPL' ),
- );
+ 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, 4, 'added 4 fields' );
+ 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 );
diff --git a/t/lib/KohaTest/Acquisition/GetHistory.pm b/t/lib/KohaTest/Acquisition/GetHistory.pm
index 940d1a9..be5e6be 100644
--- a/t/lib/KohaTest/Acquisition/GetHistory.pm
+++ b/t/lib/KohaTest/Acquisition/GetHistory.pm
@@ -5,7 +5,6 @@ use strict;
use warnings;
use Test::More;
-use Time::localtime;
use C4::Acquisition;
use C4::Context;
@@ -104,11 +103,8 @@ sub one_order : Test( 50 ) {
# searching by from_date
{
- my $tomorrowseconds = time + 60*60*24;
- my $tomorrow = sprintf( '%04d-%02d-%02d',
- localtime( $tomorrowseconds )->year() + 1900,
- localtime( $tomorrowseconds )->mon() + 1,
- localtime( $tomorrowseconds )->mday() );
+ my $tomorrow = $self->tomorrow();
+ # diag( "tomorrow is $tomorrow" );
my ( $order_loop, $total_qty, $total_price, $total_qtyreceived) = GetHistory( undef, undef, undef, undef, $tomorrow );
# diag( Data::Dumper->Dump( [ $order_loop, $total_qty, $total_price, $total_qtyreceived ], [ qw( order_loop total_qty total_price total_qtyreceived ) ] ) );
@@ -121,11 +117,7 @@ sub one_order : Test( 50 ) {
# searching by from_date
{
- my $yesterdayseconds = time - 60*60*24;
- my $yesterday = sprintf( '%04d-%02d-%02d',
- localtime( $yesterdayseconds )->year() + 1900,
- localtime( $yesterdayseconds )->mon() + 1,
- localtime( $yesterdayseconds )->mday() );
+ my $yesterday = $self->yesterday();
# diag( "yesterday was $yesterday" );
my ( $order_loop, $total_qty, $total_price, $total_qtyreceived) = GetHistory( undef, undef, undef, $yesterday );
--
1.5.6
More information about the Koha-patches
mailing list