Bug 11689: Add unit tests for serials statuses
prove t/db_dependent/Serials.t Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com> Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This commit is contained in:
parent
3285e34dc2
commit
a9f1c3a66f
1 changed files with 56 additions and 1 deletions
|
@ -14,7 +14,8 @@ use C4::Debug;
|
|||
use C4::Bookseller;
|
||||
use C4::Biblio;
|
||||
use C4::Budgets;
|
||||
use Test::More tests => 35;
|
||||
use Koha::DateUtils;
|
||||
use Test::More tests => 44;
|
||||
|
||||
BEGIN {
|
||||
use_ok('C4::Serials');
|
||||
|
@ -180,4 +181,58 @@ is(C4::Serials::check_routing(), undef, 'test checking route');
|
|||
|
||||
is(C4::Serials::addroutingmember(),undef, 'test adding route member');
|
||||
|
||||
|
||||
# Unit tests for statuses management (Bug 11689)
|
||||
$subscriptionid = NewSubscription(
|
||||
undef, "", undef, undef, $budget_id, $biblionumber,
|
||||
'2013-01-01', $frequency_id, undef, undef, undef,
|
||||
undef, undef, undef, undef, undef, undef,
|
||||
1, "notes",undef, '2013-01-01', undef, $pattern_id,
|
||||
undef, undef, 0, "intnotes", 0,
|
||||
undef, undef, 0, undef, '2013-12-31', 0
|
||||
);
|
||||
my $total_issues;
|
||||
( $total_issues, @serials ) = C4::Serials::GetSerials( $subscriptionid );
|
||||
is( $total_issues, 1, "NewSubscription created a first serial" );
|
||||
is( @serials, 1, "GetSerials returns the serial" );
|
||||
my $subscription = C4::Serials::GetSubscription($subscriptionid);
|
||||
my $pattern = C4::Serials::Numberpattern::GetSubscriptionNumberpattern($subscription->{numberpattern});
|
||||
( $total_issues, @serials ) = C4::Serials::GetSerials( $subscriptionid );
|
||||
my $publisheddate = output_pref({ dt => dt_from_string, dateformat => 'iso', dateonly => 1 });
|
||||
( $total_issues, @serials ) = C4::Serials::GetSerials( $subscriptionid );
|
||||
my $nextpublisheddate = C4::Serials::GetNextDate($subscription, $publisheddate, 1);
|
||||
my @statuses = qw( 2 2 3 3 3 3 3 4 4 41 42 43 44 5 );
|
||||
# Add 14 serials
|
||||
my $counter = 0;
|
||||
for my $status ( @statuses ) {
|
||||
my $serialseq = "No.".$counter;
|
||||
my ( $expected_serial ) = GetSerials2( $subscriptionid, 1 );
|
||||
C4::Serials::ModSerialStatus( $expected_serial->{serialid}, $serialseq, $publisheddate, $publisheddate, $statuses[$counter], 'an useless note' );
|
||||
$counter++;
|
||||
}
|
||||
# Here we have 15 serials with statuses : 2*2 + 5*3 + 2*4 + 1*41 + 1*42 + 1*43 + 1*44 + 1*5 + 1*1
|
||||
( $total_issues, @serials ) = C4::Serials::GetSerials( $subscriptionid );
|
||||
is( $total_issues, @statuses + 1, "GetSerials returns total_issues" );
|
||||
my @arrived_missing = map { my $status = $_->{status}; ( grep { /^$status$/ } qw( 2 4 41 42 43 44 5 ) ) ? $_ : () } @serials;
|
||||
my @others = map { my $status = $_->{status}; ( grep { /^$status$/ } qw( 2 4 41 42 43 44 5 ) ) ? () : $_ } @serials;
|
||||
is( @arrived_missing, 5, "GetSerials returns 5 arrived/missing by default" );
|
||||
is( @others, 6, "GetSerials returns all serials not arrived and not missing" );
|
||||
|
||||
( $total_issues, @serials ) = C4::Serials::GetSerials( $subscriptionid, 10 );
|
||||
is( $total_issues, @statuses + 1, "GetSerials returns total_issues" );
|
||||
@arrived_missing = map { my $status = $_->{status}; ( grep { /^$status$/ } qw( 2 4 41 42 43 44 5 ) ) ? $_ : () } @serials;
|
||||
@others = map { my $status = $_->{status}; ( grep { /^$status$/ } qw( 2 4 41 42 43 44 5 ) ) ? () : $_ } @serials;
|
||||
is( @arrived_missing, 9, "GetSerials returns all arrived/missing if count given" );
|
||||
is( @others, 6, "GetSerials returns all serials not arrived and not missing if count given" );
|
||||
|
||||
$subscription = C4::Serials::GetSubscription($subscriptionid); # Retrieve the updated subscription
|
||||
|
||||
my @serialseqs;
|
||||
for my $am ( reverse @arrived_missing ) {
|
||||
if ( grep {/^$am->{status}$/} qw( 4 41 42 43 44 5 ) ) {
|
||||
push @serialseqs, $am->{serialseq}
|
||||
}
|
||||
}
|
||||
is( $subscription->{missinglist}, 'not issued ' . join('; ', @serialseqs), "subscription missinglist is updated after ModSerialStatus" );
|
||||
|
||||
$dbh->rollback;
|
||||
|
|
Loading…
Reference in a new issue