From c4c9a0f55d56f58daf9153e13c525a9098ac66b0 Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Fri, 13 May 2016 14:02:33 -0400 Subject: [PATCH] Bug 15878 - Updated unit tests for hbyymmincr barcodes Test plan in second patch --- t/db_dependent/Barcodes.t | 92 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 83 insertions(+), 9 deletions(-) diff --git a/t/db_dependent/Barcodes.t b/t/db_dependent/Barcodes.t index e7a74a0..8be8a28 100755 --- a/t/db_dependent/Barcodes.t +++ b/t/db_dependent/Barcodes.t @@ -17,7 +17,7 @@ use Modern::Perl; -use Test::More tests => 74; +use Test::More tests => 75; use Test::Warn; use Test::MockModule; use t::lib::TestBuilder; @@ -84,6 +84,67 @@ subtest 'Test generation of annual barcodes from DB values' => sub { }; +$schema->storage->txn_begin; +subtest 'Test generation of hbyymmincr barcodes from DB values' => sub { + + plan tests => 5; + + $builder->schema->resultset( 'Issue' )->delete_all; + $builder->schema->resultset( 'Item' )->delete_all; + + my$barcode_branch = $builder->build({ + source => 'Branch', + branchcode => 'LETTERS', + }); + + my $branchcode_1 = "LETT"; + print "$branchcode_1\n"; + my $barcodeobj; + + warnings_are { $barcodeobj = C4::Barcodes->new('hbyymmincr'); } + [ "HBYYMM Barcode created with no branchcode, default is blank", + "No existing hbyymmincr barcodes found. Reverting to initial value.", + "HBYYMM Barcode was not passed a branch, default is blank"] + , "(hbyymmincr) Expected complaint regarding no max barcode found"; + + + warning_like { $barcodeobj = C4::Barcodes->new('hbyymmincr',$branchcode_1); } + [ qr/No existing hbyymmincr barcodes found\. Reverting to initial value\./], + "(hbyymmincr) Expected complaint regarding no max barcode found"; + + my $barcodevalue = $barcodeobj->value(); + + my $item_1 = $builder->build({ + source => 'Item', + value => { + barcode => $barcodevalue + } + }); + + is($barcodevalue,$barcodeobj->db_max(), "(hbyymmincr) First barcode saved to db is equal to db_max" ); + + #This is just setting the value ahead an arbitrary amount before adding a second barcode to db + $barcodevalue = $barcodeobj->next_value(); + $barcodevalue = $barcodeobj->next_value($barcodevalue); + $barcodevalue = $barcodeobj->next_value($barcodevalue); + $barcodevalue = $barcodeobj->next_value($barcodevalue); + $barcodevalue = $barcodeobj->next_value($barcodevalue); + + my $item_2 = $builder->build({ + source => 'Item', + value => { + barcode => $barcodevalue + } + }); + + $barcodeobj = C4::Barcodes->new('hbyymmincr',$branchcode_1); + + is($barcodevalue,$barcodeobj->db_max(), '(hbyymmincr) db_max should equal the greatest barcode in the db when more than 1 present'); + ok($barcodeobj->value() gt $barcodevalue, '(hbyymmincr) new barcode object should be created with value greater and last value inserted into db'); + + $schema->storage->txn_rollback; +}; + $builder->schema->resultset( 'Issue' )->delete_all; $builder->schema->resultset( 'Item' )->delete_all; @@ -109,9 +170,11 @@ foreach (@formats) { "$pre Expected complaint regarding no max barcode found"; } elsif ($_ eq 'hbyymmincr') { - warning_like { $obj1 = C4::Barcodes->new($_); } - [ qr/No existing hbyymmincr barcodes found\. Reverting to initial value\./ ], - "$pre Expected complaint regarding no hbyymmincr barcodes found"; + warnings_are { $obj1 = C4::Barcodes->new($_); } + [ "HBYYMM Barcode created with no branchcode, default is blank", + "No existing hbyymmincr barcodes found. Reverting to initial value.", + "HBYYMM Barcode was not passed a branch, default is blank"] + , "$pre Expected complaint regarding no max barcode found"; } elsif ($_ eq 'incremental') { $obj1 = C4::Barcodes->new($_); @@ -123,20 +186,31 @@ foreach (@formats) { SKIP: { skip "No Object Returned by new($_)", 17 unless $obj1; ok($_ eq ($format = $obj1->autoBarcode()), "$pre autoBarcode() : " . ($format || 'FAILED') ); - ok($initial= $obj1->initial(), "$pre initial() : " . ($initial|| 'FAILED') ); +# ok($initial= $obj1->initial(), "$pre initial() : " . ($initial|| 'FAILED') ); if ($_ eq 'hbyymmincr') { - warning_like { $temp = $obj1->db_max(); } - [ qr/No existing hbyymmincr barcodes found\. Reverting to initial value\./ ], - "$pre Expected complaint regarding no hbyymmincr barcodes found"; + warning_like { $initial= $obj1->initial(); } + [ qr/HBYYMM Barcode was not passed a branch, default is blank/ ] + ,"$pre Expected complaint regarding no branch passed when getting initial\n $pre initial() : " . $initial ; + warnings_are { $temp = $obj1->db_max(); } + [ "No existing hbyymmincr barcodes found. Reverting to initial value.", + "HBYYMM Barcode was not passed a branch, default is blank"] + ,"$pre Expected complaint regarding no hbyymmincr barcodes found"; } else { + ok($initial= $obj1->initial(), "$pre initial() : " . ($initial|| 'FAILED') ); $temp = $obj1->db_max(); } ok($temp = $obj1->max(), "$pre max() : " . ($temp || 'FAILED') ); ok($value = $obj1->value(), "$pre value() : " . ($value || 'FAILED') ); ok($serial = $obj1->serial(), "$pre serial() : " . ($serial || 'FAILED') ); ok($temp = $obj1->is_max(), "$pre obj1->is_max() [obj1 should currently be max]"); - ok($obj2 = $obj1->new(), "$pre Barcode Creation : obj2 = obj1->new()"); + if ($_ eq 'hbyymmincr') { + warning_like { $obj2 = $obj1->new(); } + [ qr/HBYYMM Barcode created with no branchcode, default is blank/ ] + ,"$pre Expected complaint regarding no branch passed when getting initial\n $pre Barcode Creation : obj2 = obj1->new()" ; + } else { + ok($obj2 = $obj1->new(), "$pre Barcode Creation : obj2 = obj1->new()"); + } ok(not($obj1->is_max()), "$pre obj1->is_max() [obj1 should no longer be max]"); ok( $obj2->is_max(), "$pre obj2->is_max() [obj2 should currently be max]"); ok($obj2->serial == $obj1->serial + 1, "$pre obj2->serial() : " . ($obj2->serial || 'FAILED')); -- 2.1.4