Koha/t/db_dependent/lib/KohaTest/Acquisition/GetHistory.pm
Matthias Meusburger 7f957077dd Bug 5337: EAN management : Adds ean for various searches
- in various acquisition pages and serials home
  - in database : biblioitems.ean
  - adds ean and its mapping in default english bibliographic framework
  - adds ean mapping in default french bibliographic framework
  - ean search is not enabled for MARC21

The required mapping between the ean marc field and the biblioitems.ean
database field will be automatically added on an existing unimarc installation.

However, if you already have records with ean, you will have to
run misc/batchRebuildBiblioTables.pl to populate biblioitems.ean

Signed-off-by: jmbroust <jean-manuel.broust@univ-lyon2.fr>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Passed QA at second run. Removed a merge marker only.
2012-06-09 18:26:34 +02:00

208 lines
9 KiB
Perl

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 IndependantBranches
$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;