Bug 9431 [Revised] Use DataTables on Patron Category Administration page
[koha.git] / t / Matcher.t
1 #!/usr/bin/perl
2 #
3 #testing C4 matcher
4
5 use strict;
6 use warnings;
7 use Test::More tests => 10;
8 use Test::MockModule;
9
10 BEGIN {
11     use_ok('C4::Matcher');
12 }
13
14 my $module = new Test::MockModule('C4::Context');
15 $module->mock(
16     '_new_dbh',
17     sub {
18         my $dbh = DBI->connect( 'DBI:Mock:', '', '' )
19           || die "Cannot create handle: $DBI::errstr\n";
20         return $dbh;
21     }
22 );
23 my $matcher = [
24     [ 'matcher_id', 'code', 'description', 'record_type', 'threshold' ],
25     [ 1,            'ISBN', 'ISBN',        'red',         1 ],
26     [ 2,            'ISSN', 'ISSN',        'blue',        0 ]
27 ];
28 my $dbh = C4::Context->dbh();
29
30 $dbh->{mock_add_resultset} = $matcher;
31
32 my @matchers = C4::Matcher::GetMatcherList();
33
34 is( $matchers[0]->{'matcher_id'}, 1, 'First matcher_id value is 1' );
35
36 is( $matchers[1]->{'matcher_id'}, 2, 'Second matcher_id value is 2' );
37
38 $dbh->{mock_add_resultset} = $matcher;
39
40 my $matcher_id = C4::Matcher::GetMatcherId('ISBN');
41
42 is( $matcher_id, 1, 'testing getmatcherid' );
43
44 my $testmatcher;
45
46 ok( $testmatcher = C4::Matcher->new( 'red', 1 ), 'testing matcher new' );
47
48 ok( $testmatcher = C4::Matcher->new( 'blue', 0 ), 'testing matcher new' );
49
50 $testmatcher->threshold(1000);
51
52 is( $testmatcher->threshold(), 1000, 'testing threshhold accessor method' );
53
54 $testmatcher->_id(53);
55
56 is( $testmatcher->_id(), 53, 'testing _id accessor' );
57
58 $testmatcher->code('match on ISBN');
59
60 is( $testmatcher->code(), 'match on ISBN', 'testing code accessor' );
61
62 $testmatcher->description('match on ISSN');
63
64 is( $testmatcher->description(), 'match on ISSN', 'testing code accessor' );