Bug 12470: adding unit tests for the routines CheckValidBarCode and CheckIfIssuedToPa...
[koha.git] / t / db_dependent / Circulation / CheckValidBarcode.t
1 #!/usr/bin/perl
2
3 use Modern::Perl;
4
5 use Test::More tests => 10;
6
7 use C4::Circulation;
8 use C4::Biblio;
9 use C4::Items;
10 use C4::Branch;
11
12
13 BEGIN {
14     use_ok('C4::Circulation');
15 }
16
17 my $dbh = C4::Context->dbh;
18 $dbh->{AutoCommit} = 0;
19 $dbh->{RaiseError} = 1;
20
21 $dbh->do(q|DELETE FROM issues|);
22 $dbh->do(q|DELETE FROM items|);
23 $dbh->do(q|DELETE FROM borrowers|);
24 $dbh->do(q|DELETE FROM branches|);
25 $dbh->do(q|DELETE FROM biblio|);
26 $dbh->do(q|DELETE FROM categories|);
27
28
29 my $branchcode = 'B';
30 ModBranch({ add => 1, branchcode => $branchcode, branchname => 'Branch' });
31
32 my $categorycode = 'C';
33 $dbh->do("INSERT INTO categories(categorycode) VALUES(?)", undef, $categorycode);
34
35 my %item_branch_infos = (
36     homebranch => $branchcode,
37     holdingbranch => $branchcode,
38 );
39
40 my $barcode1 = '0101';
41 my $barcode2 = '0102';
42 my $barcode3 = '0203';
43
44 my $check_valid_barcode = C4::Circulation::CheckValidBarcode();
45 is( $check_valid_barcode, 0, 'CheckValidBarcode without barcode returns false' );
46 $check_valid_barcode = C4::Circulation::CheckValidBarcode($barcode1);
47 is( $check_valid_barcode, 0, 'CheckValidBarcode with an invalid barcode returns true' );
48 $check_valid_barcode = C4::Circulation::CheckValidBarcode($barcode2);
49 is( $check_valid_barcode, 0, 'CheckValidBarcode with an invalid barcode returns true' );
50 $check_valid_barcode = C4::Circulation::CheckValidBarcode($barcode3);
51 is( $check_valid_barcode, 0, 'CheckValidBarcode with an invalid barcode returns true' );
52
53 my ($biblionumber1) = AddBiblio(MARC::Record->new, '');
54 AddItem({ barcode => $barcode1, %item_branch_infos }, $biblionumber1);
55 AddItem({ barcode => $barcode2, %item_branch_infos }, $biblionumber1);
56 my ($biblionumber2) = AddBiblio(MARC::Record->new, '');
57 AddItem({ barcode => $barcode3, %item_branch_infos }, $biblionumber2);
58
59 $check_valid_barcode = C4::Circulation::CheckValidBarcode();
60 is( $check_valid_barcode, 0, 'CheckValidBarcode without barcode returns false' );
61 $check_valid_barcode = C4::Circulation::CheckValidBarcode($barcode1);
62 is( $check_valid_barcode, 1, 'CheckValidBarcode returns true' );
63 $check_valid_barcode = C4::Circulation::CheckValidBarcode($barcode2);
64 is( $check_valid_barcode, 1, 'CheckValidBarcode returns true' );
65 $check_valid_barcode = C4::Circulation::CheckValidBarcode($barcode3);
66 is( $check_valid_barcode, 1, 'CheckValidBarcode returns true' );
67 $check_valid_barcode = C4::Circulation::CheckValidBarcode('wrong barcode');
68 is( $check_valid_barcode, 0, 'CheckValidBarcode with an invalid barcode returns false' );
69
70 $dbh->rollback();