@@ -, +, @@ --- t/db_dependent/Barcodes.t | 52 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) --- a/t/db_dependent/Barcodes.t +++ a/t/db_dependent/Barcodes.t @@ -17,8 +17,12 @@ use Modern::Perl; -use Test::More tests => 73; +use Test::More tests => 76; use Test::Warn; +use Test::MockModule; +use t::lib::TestBuilder; + +use Koha::Database; $| = 1; @@ -28,6 +32,52 @@ BEGIN { use_ok('C4::Barcodes'); } +my $schema = Koha::Database->new->schema; +$schema->storage->txn_begin; + +my $builder = t::lib::TestBuilder->new; + +my $dbh = C4::Context->dbh; + +#Test generation of annual barcodes from +$dbh->do(q|DELETE FROM issues|); +$dbh->do(q|DELETE FROM items|); + +my $barcodeobj = C4::Barcodes->new('annual'); + +my $barcodevalue = $barcodeobj->value(); + +my $item_1 = $builder->build({ + source => 'Item', + value => { + barcode => $barcodevalue + } +}); + +is($barcodevalue,$barcodeobj->db_max(), "(annual) 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('annual'); + +is($barcodevalue,$barcodeobj->db_max(), '(annual) db_max should equal the greatest barcode in the db when more than 1 present'); +ok($barcodeobj->value() gt $barcodevalue, '(annual) new barcode object should be created with value greater and last value inserted into db'); + +$dbh->do(q|DELETE FROM issues|); +$dbh->do(q|DELETE FROM items|); + my %thash = ( incremental => [], annual => [], --