Bug 14778: Make Barcodes_ValueBuilder.t db dependent

The get_barcode subroutines call very mysql specific functions and it's
not possible to easily use fixtures here.

Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Jonathan Druart 2015-10-20 14:45:11 +01:00 committed by Tomas Cohen Arazi
parent 4b92a399d8
commit 13058d7f9a

View file

@ -1,34 +1,35 @@
#!/usr/bin/perl
use Modern::Perl;
use Test::More tests => 10;
use Test::More tests => 7;
use Test::MockModule;
use t::lib::TestBuilder;
BEGIN {
use_ok('C4::Barcodes::ValueBuilder');
}
use Test::DBIx::Class {
schema_class => 'Koha::Schema',
connect_info => ['dbi:SQLite:dbname=:memory:','',''],
connect_opts => { name_sep => '.', quote_char => '`', },
fixture_class => '::Populate',
}, 'Biblio' ;
sub fixtures {
my ( $data ) = @_;
fixtures_ok [
Item => [
@$data
],
], 'add fixtures';
}
my $db = Test::MockModule->new('Koha::Database');
$db->mock(
_new_schema => sub { return Schema(); }
);
};
my $builder = t::lib::TestBuilder->new;
my $dbh = C4::Context->dbh;
$dbh->do(q|DELETE FROM items|);
my $item_1 = $builder->build({
source => 'Item',
value => {
barcode => '33333074344563'
}
});
my $item_2 = $builder->build({
source => 'Item',
value => {
barcode => 'hb12070890'
}
});
my $item_3 = $builder->build({
source => 'Item',
value => {
barcode => '2012-0034'
}
});
my %args = (
year => '2012',
@ -40,29 +41,14 @@ my %args = (
locsubfield => 'a'
);
fixtures([
[ qw/ itemnumber barcode / ],
[ 1, 33333074344563 ]
]);
my ($nextnum, $scr) = C4::Barcodes::ValueBuilder::incremental::get_barcode(\%args);
is($nextnum, 33333074344564, 'incremental barcode');
is($scr, undef, 'incremental javascript');
fixtures([
['barcode'],
['890'],
]);
($nextnum, $scr) = C4::Barcodes::ValueBuilder::hbyymmincr::get_barcode(\%args);
is($nextnum, '12070891', 'hbyymmincr barcode');
ok(length($scr) > 0, 'hbyymmincr javascript');
fixtures([
['barcode'],
#max(cast( substring_index(barcode, \'-\',-1) as signed))'],
['34'],
]);
($nextnum, $scr) = C4::Barcodes::ValueBuilder::annual::get_barcode(\%args);
is($nextnum, '2012-0035', 'annual barcode');
is($scr, undef, 'annual javascript');