Bugzilla – Attachment 29189 Details for
Bug 12470
C4::Circulations.pm needs more unit tests
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 12470: adding unit tests for the routines CheckValidBarCode and CheckIfIssuedToPatron of the module C4::Circulation.pm
Bug-12470-adding-unit-tests-for-the-routines-Check.patch (text/plain), 9.22 KB, created by
Yohann Dufour
on 2014-06-24 12:30:22 UTC
(
hide
)
Description:
Bug 12470: adding unit tests for the routines CheckValidBarCode and CheckIfIssuedToPatron of the module C4::Circulation.pm
Filename:
MIME Type:
Creator:
Yohann Dufour
Created:
2014-06-24 12:30:22 UTC
Size:
9.22 KB
patch
obsolete
>From cb085695f62e9b01e7b1099e1ed722ae453011f0 Mon Sep 17 00:00:00 2001 >From: Yohann Dufour <dufour.yohann@gmail.com> >Date: Tue, 24 Jun 2014 14:27:21 +0200 >Subject: [PATCH] Bug 12470: adding unit tests for the routines > CheckValidBarCode and CheckIfIssuedToPatron of the module C4::Circulation.pm > >The routines CheckValidBarcode and CheckIfIssuedToPatron were not tested > >Test plan: >1/ Apply the patch >2/ Execute : prove t/db_dependent/Circulation/CheckValidBarcode.t t/db_dependent/Circulation/CheckIfIssuedToPatron.t >3/ The result of the command has to be a success without error or warning : >t/db_dependent/Circulation/CheckValidBarcode.t ...... ok >t/db_dependent/Circulation/CheckIfIssuedToPatron.t .. ok >All tests successful. >Files=2, Tests=32, 3 wallclock secs ( 0.04 usr 0.01 sys + 2.88 cusr 0.17 csys = 3.10 CPU) >Result: PASS >--- > t/db_dependent/Circulation/CheckIfIssuedToPatron.t | 106 +++++++++++++++++++++ > t/db_dependent/Circulation/CheckValidBarcode.t | 70 ++++++++++++++ > 2 files changed, 176 insertions(+) > create mode 100644 t/db_dependent/Circulation/CheckIfIssuedToPatron.t > create mode 100644 t/db_dependent/Circulation/CheckValidBarcode.t > >diff --git a/t/db_dependent/Circulation/CheckIfIssuedToPatron.t b/t/db_dependent/Circulation/CheckIfIssuedToPatron.t >new file mode 100644 >index 0000000..315923d >--- /dev/null >+++ b/t/db_dependent/Circulation/CheckIfIssuedToPatron.t >@@ -0,0 +1,106 @@ >+#!/usr/bin/perl >+ >+use Modern::Perl; >+ >+use Test::More tests => 22; >+use Test::MockModule; >+ >+use C4::Biblio; >+use C4::Items; >+use C4::Members; >+use C4::Branch; >+use C4::Category; >+use MARC::Record; >+ >+BEGIN { >+ use_ok('C4::Circulation'); >+} >+ >+ >+my $dbh = C4::Context->dbh; >+$dbh->{AutoCommit} = 0; >+$dbh->{RaiseError} = 1; >+ >+$dbh->do(q|DELETE FROM issues|); >+$dbh->do(q|DELETE FROM borrowers|); >+$dbh->do(q|DELETE FROM branches|); >+$dbh->do(q|DELETE FROM biblio|); >+$dbh->do(q|DELETE FROM items|); >+$dbh->do(q|DELETE FROM categories|); >+ >+ >+my $branchcode = 'B'; >+ModBranch({ add => 1, branchcode => $branchcode, branchname => 'Branch' }); >+ >+my $categorycode = 'C'; >+$dbh->do("INSERT INTO categories(categorycode) VALUES(?)", undef, $categorycode); >+ >+my %item_branch_infos = ( >+ homebranch => $branchcode, >+ holdingbranch => $branchcode, >+); >+ >+my ($biblionumber1) = AddBiblio(MARC::Record->new, ''); >+my $barcode1 = '0101'; >+AddItem({ barcode => $barcode1, %item_branch_infos }, $biblionumber1); >+my ($biblionumber2) = AddBiblio(MARC::Record->new, ''); >+my $barcode2 = '0202'; >+AddItem({ barcode => $barcode2, %item_branch_infos }, $biblionumber2); >+ >+my $borrowernumber1 = AddMember(categorycode => $categorycode, branchcode => $branchcode); >+my $borrowernumber2 = AddMember(categorycode => $categorycode, branchcode => $branchcode); >+my $borrower1 = GetMember(borrowernumber => $borrowernumber1); >+my $borrower2 = GetMember(borrowernumber => $borrowernumber2); >+ >+my $module = new Test::MockModule('C4::Context'); >+$module->mock('userenv', sub { { branch => $branchcode } }); >+ >+ >+my $check_if_issued = C4::Circulation::CheckIfIssuedToPatron(); >+is( $check_if_issued, undef, 'CheckIfIssuedToPatron without argument returns undef' ); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron(undef, $biblionumber1); >+is( $check_if_issued, undef, 'CheckIfIssuedToPatron without the borrower number returns undef' ); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron($borrowernumber1, undef); >+is( $check_if_issued, undef, 'CheckIfIssuedToPatron without the biblio number returns undef' ); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron($borrowernumber1, $biblionumber1); >+is( $check_if_issued, undef, 'CheckIfIssuedToPatron returns unef' ); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron($borrowernumber1, $biblionumber2); >+is( $check_if_issued, undef, 'CheckIfIssuedToPatron returns undef' ); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron($borrowernumber2, $biblionumber1); >+is( $check_if_issued, undef, 'CheckIfIssuedToPatron returns undef' ); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron($borrowernumber2, $biblionumber2); >+is( $check_if_issued, undef, 'CheckIfIssuedToPatron returns undef' ); >+ >+AddIssue($borrower1, '0101'); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron(); >+is( $check_if_issued, undef, 'CheckIfIssuedToPatron without argument returns undef' ); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron(undef, $biblionumber1); >+is( $check_if_issued, undef, 'CheckIfIssuedToPatron without the borrower number returns undef' ); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron($borrowernumber1, undef); >+is( $check_if_issued, undef, 'CheckIfIssuedToPatron without the biblio number returns undef' ); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron($borrowernumber1, $biblionumber1); >+is( $check_if_issued, 1, 'CheckIfIssuedToPatron returns true' ); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron($borrowernumber1, $biblionumber2); >+is( $check_if_issued, undef, 'CheckIfIssuedToPatron returns undef' ); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron($borrowernumber2, $biblionumber1); >+is( $check_if_issued, undef, 'CheckIfIssuedToPatron returns undef' ); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron($borrowernumber2, $biblionumber2); >+is( $check_if_issued, undef, 'CheckIfIssuedToPatron returns undef' ); >+ >+AddIssue($borrower2, '0202'); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron(); >+is( $check_if_issued, undef, 'CheckIfIssuedToPatron without argument returns undef' ); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron(undef, $biblionumber1); >+is( $check_if_issued, undef, 'CheckIfIssuedToPatron without the borrower number returns undef' ); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron($borrowernumber1, undef); >+is( $check_if_issued, undef, 'CheckIfIssuedToPatron without the biblio number returns undef' ); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron($borrowernumber1, $biblionumber1); >+is( $check_if_issued, 1, 'CheckIfIssuedToPatron returns true' ); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron($borrowernumber1, $biblionumber2); >+is( $check_if_issued, undef, 'CheckIfIssuedToPatron returns undef' ); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron($borrowernumber2, $biblionumber1); >+is( $check_if_issued, undef, 'CheckIfIssuedToPatron returns undef' ); >+$check_if_issued = C4::Circulation::CheckIfIssuedToPatron($borrowernumber2, $biblionumber2); >+is( $check_if_issued, 1, 'CheckIfIssuedToPatron returns true' ); >+ >+$dbh->rollback(); >diff --git a/t/db_dependent/Circulation/CheckValidBarcode.t b/t/db_dependent/Circulation/CheckValidBarcode.t >new file mode 100644 >index 0000000..0d5396c >--- /dev/null >+++ b/t/db_dependent/Circulation/CheckValidBarcode.t >@@ -0,0 +1,70 @@ >+#!/usr/bin/perl >+ >+use Modern::Perl; >+ >+use Test::More tests => 10; >+ >+use C4::Circulation; >+use C4::Biblio; >+use C4::Items; >+use C4::Branch; >+ >+ >+BEGIN { >+ use_ok('C4::Circulation'); >+} >+ >+my $dbh = C4::Context->dbh; >+$dbh->{AutoCommit} = 0; >+$dbh->{RaiseError} = 1; >+ >+$dbh->do(q|DELETE FROM issues|); >+$dbh->do(q|DELETE FROM borrowers|); >+$dbh->do(q|DELETE FROM branches|); >+$dbh->do(q|DELETE FROM biblio|); >+$dbh->do(q|DELETE FROM items|); >+$dbh->do(q|DELETE FROM categories|); >+ >+ >+my $branchcode = 'B'; >+ModBranch({ add => 1, branchcode => $branchcode, branchname => 'Branch' }); >+ >+my $categorycode = 'C'; >+$dbh->do("INSERT INTO categories(categorycode) VALUES(?)", undef, $categorycode); >+ >+my %item_branch_infos = ( >+ homebranch => $branchcode, >+ holdingbranch => $branchcode, >+); >+ >+my $barcode1 = '0101'; >+my $barcode2 = '0102'; >+my $barcode3 = '0203'; >+ >+my $check_valid_barcode = C4::Circulation::CheckValidBarcode(); >+is( $check_valid_barcode, 0, 'CheckValidBarcode without barcode returns false' ); >+$check_valid_barcode = C4::Circulation::CheckValidBarcode($barcode1); >+is( $check_valid_barcode, 0, 'CheckValidBarcode with an invalid barcode returns true' ); >+$check_valid_barcode = C4::Circulation::CheckValidBarcode($barcode2); >+is( $check_valid_barcode, 0, 'CheckValidBarcode with an invalid barcode returns true' ); >+$check_valid_barcode = C4::Circulation::CheckValidBarcode($barcode3); >+is( $check_valid_barcode, 0, 'CheckValidBarcode with an invalid barcode returns true' ); >+ >+my ($biblionumber1) = AddBiblio(MARC::Record->new, ''); >+AddItem({ barcode => $barcode1, %item_branch_infos }, $biblionumber1); >+AddItem({ barcode => $barcode2, %item_branch_infos }, $biblionumber1); >+my ($biblionumber2) = AddBiblio(MARC::Record->new, ''); >+AddItem({ barcode => $barcode3, %item_branch_infos }, $biblionumber2); >+ >+$check_valid_barcode = C4::Circulation::CheckValidBarcode(); >+is( $check_valid_barcode, 0, 'CheckValidBarcode without barcode returns false' ); >+$check_valid_barcode = C4::Circulation::CheckValidBarcode($barcode1); >+is( $check_valid_barcode, 1, 'CheckValidBarcode returns true' ); >+$check_valid_barcode = C4::Circulation::CheckValidBarcode($barcode2); >+is( $check_valid_barcode, 1, 'CheckValidBarcode returns true' ); >+$check_valid_barcode = C4::Circulation::CheckValidBarcode($barcode3); >+is( $check_valid_barcode, 1, 'CheckValidBarcode returns true' ); >+$check_valid_barcode = C4::Circulation::CheckValidBarcode('wrong barcode'); >+is( $check_valid_barcode, 0, 'CheckValidBarcode with an invalid barcode returns false' ); >+ >+$dbh->rollback(); >-- >1.9.1
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 12470
:
29189
|
29321
|
29577
|
29589
|
29647