Bug 14778: Install fixtures for t/SocialData.t
[koha.git] / t / Barcodes_ValueBuilder.t
1 #!/usr/bin/perl
2
3 use Modern::Perl;
4 use Test::More tests => 10;
5 use Test::MockModule;
6
7 BEGIN {
8     use_ok('C4::Barcodes::ValueBuilder');
9 }
10
11 use Test::DBIx::Class {
12     schema_class => 'Koha::Schema',
13     connect_info => ['dbi:SQLite:dbname=:memory:','',''],
14     connect_opts => { name_sep => '.', quote_char => '`', },
15     fixture_class => '::Populate',
16 }, 'Biblio' ;
17
18 sub fixtures {
19     my ( $data ) = @_;
20     fixtures_ok [
21         Item => [
22             @$data
23         ],
24     ], 'add fixtures';
25 }
26
27 my $db = Test::MockModule->new('Koha::Database');
28 $db->mock(
29     _new_schema => sub { return Schema(); }
30 );
31
32
33 my %args = (
34     year        => '2012',
35     mon         => '07',
36     day         => '30',
37     tag         => '952',
38     subfield    => 'p',
39     loctag      => '952',
40     locsubfield => 'a'
41 );
42
43 fixtures([
44     [ qw/ itemnumber barcode / ],
45     [ 1, 33333074344563 ]
46 ]);
47 my ($nextnum, $scr) = C4::Barcodes::ValueBuilder::incremental::get_barcode(\%args);
48 is($nextnum, 33333074344564, 'incremental barcode');
49 is($scr, undef, 'incremental javascript');
50
51 fixtures([
52     ['barcode'],
53     ['890'],
54 ]);
55
56 ($nextnum, $scr) = C4::Barcodes::ValueBuilder::hbyymmincr::get_barcode(\%args);
57 is($nextnum, '12070891', 'hbyymmincr barcode');
58 ok(length($scr) > 0, 'hbyymmincr javascript');
59
60 fixtures([
61     ['barcode'],
62     #max(cast( substring_index(barcode, \'-\',-1) as signed))'],
63     ['34'],
64 ]);
65
66 ($nextnum, $scr) = C4::Barcodes::ValueBuilder::annual::get_barcode(\%args);
67 is($nextnum, '2012-0035', 'annual barcode');
68 is($scr, undef, 'annual javascript');