Bug 14778: Make Barcodes_ValueBuilder.t db dependent
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 20 Oct 2015 13:45:11 +0000 (14:45 +0100)
committerTomas Cohen Arazi <tomascohen@theke.io>
Fri, 23 Oct 2015 15:01:19 +0000 (12:01 -0300)
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>
t/Barcodes_ValueBuilder.t [deleted file]
t/db_dependent/Barcodes_ValueBuilder.t [new file with mode: 0644]

diff --git a/t/Barcodes_ValueBuilder.t b/t/Barcodes_ValueBuilder.t
deleted file mode 100644 (file)
index da90101..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/usr/bin/perl
-
-use Modern::Perl;
-use Test::More tests => 10;
-use Test::MockModule;
-
-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 %args = (
-    year        => '2012',
-    mon         => '07',
-    day         => '30',
-    tag         => '952',
-    subfield    => 'p',
-    loctag      => '952',
-    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');
diff --git a/t/db_dependent/Barcodes_ValueBuilder.t b/t/db_dependent/Barcodes_ValueBuilder.t
new file mode 100644 (file)
index 0000000..29f0b12
--- /dev/null
@@ -0,0 +1,54 @@
+#!/usr/bin/perl
+
+use Modern::Perl;
+use Test::More tests => 7;
+use Test::MockModule;
+use t::lib::TestBuilder;
+
+BEGIN {
+    use_ok('C4::Barcodes::ValueBuilder');
+};
+
+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',
+    mon         => '07',
+    day         => '30',
+    tag         => '952',
+    subfield    => 'p',
+    loctag      => '952',
+    locsubfield => 'a'
+);
+
+my ($nextnum, $scr) = C4::Barcodes::ValueBuilder::incremental::get_barcode(\%args);
+is($nextnum, 33333074344564, 'incremental barcode');
+is($scr, undef, 'incremental javascript');
+
+($nextnum, $scr) = C4::Barcodes::ValueBuilder::hbyymmincr::get_barcode(\%args);
+is($nextnum, '12070891', 'hbyymmincr barcode');
+ok(length($scr) > 0, 'hbyymmincr javascript');
+
+($nextnum, $scr) = C4::Barcodes::ValueBuilder::annual::get_barcode(\%args);
+is($nextnum, '2012-0035', 'annual barcode');
+is($scr, undef, 'annual javascript');