]> git.koha-community.org Git - koha.git/blob - t/db_dependent/SQLHelper.t
SearchInTable : problem with primary key searches
[koha.git] / t / db_dependent / SQLHelper.t
1 #!/usr/bin/perl
2 #
3 # This Koha test module is a stub!
4 # Add more tests here!!!
5
6 use strict;
7 use warnings;
8 use YAML;
9
10 use C4::Debug;
11 use C4::SQLHelper qw(:all);
12
13 use Test::More tests => 16;
14
15 #1
16 BEGIN {
17     use_ok('C4::SQLHelper');
18 }
19 use C4::Category;
20 use C4::Branch;
21 my @categories=C4::Category->all;
22 my $branches=C4::Branch->GetBranches;
23 my @branchcodes=keys %$branches;
24 my ($borrid, $borrtmp);
25 $borrtmp=InsertInTable("borrowers",{firstname=>"Jean",surname=>"cocteau",city=>" ",zipcode=>" ",email=>"email",categorycode=>$categories[0]->{categorycode}, branchcode=>$branchcodes[0]});
26 #2
27 ok($borrid=InsertInTable("borrowers",{firstname=>"Jean",surname=>"Valjean",city=>" ",zipcode=>" ",email=>"email",categorycode=>$categories[0]->{categorycode}, branchcode=>$branchcodes[0]}),"Insert In Table");
28 #3
29 ok(my $status=UpdateInTable("borrowers",{borrowernumber=>$borrid,firstname=>"Jean",surname=>"Valjean",city=>"Dampierre",zipcode=>" ",email=>"email", branchcode=>$branchcodes[1]}),"Update In Table");
30 my $borrowers=SearchInTable("borrowers");
31 #4
32 ok(@$borrowers>0, "Search In Table All values");
33 $borrowers=SearchInTable("borrowers",{borrowernumber=>$borrid});
34 #5
35 ok(@$borrowers==1, "Search In Table by primary key on table");
36 $borrowers=SearchInTable("borrowers",{firstname=>"Jean"});
37 #6
38 ok(@$borrowers>0, "Search In Table hashref");
39 $borrowers=SearchInTable("borrowers","Jean");
40 #7
41 ok(@$borrowers>0, "Search In Table string");
42 eval{$borrowers=SearchInTable("borrowers","Jean Valjean")};
43 #8
44 ok(scalar(@$borrowers)==1 && !($@), "Search In Table does an implicit AND of all the words in strings");
45 $borrowers=SearchInTable("borrowers",["Valjean",{firstname=>"Jean"}]);
46 #9
47 ok(@$borrowers>0, "Search In Table arrayref");
48 $borrowers=SearchInTable("borrowers",["Valjean",{firstname=>"Jean"}],undef,undef,[qw(borrowernumber)]);
49 #10
50 ok(keys %{$$borrowers[0]} ==1, "Search In Table columns out limit");
51 $borrowers=SearchInTable("borrowers",["Valjean",{firstname=>"Jean"}],undef,undef,[qw(borrowernumber)],[qw(firstname surname title)]);
52 #11
53 ok(@$borrowers>0, "Search In Table columns out limit to borrowernumber AND filter firstname surname title");
54 $borrowers=SearchInTable("borrowers",["Valjean",{firstname=>"Jean"}],undef,undef,[qw(borrowernumber)],[qw(firstname title)]);
55 #12
56 ok(@$borrowers==0, "Search In Table columns filter firstname title limit Valjean not in other fields than surname ");
57 $borrowers=SearchInTable("borrowers",["Val",{firstname=>"Jean"}],undef,undef,[qw(borrowernumber)],[qw(surname)],"start_with");
58 #13
59 ok(@$borrowers>0, "Search In Table columns filter surname  Val on a wide search found ");
60 $borrowers=SearchInTable("borrowers",["Val",{firstname=>"Jean"}],undef,undef,[qw(borrowernumber)],[qw(surname)],"exact");
61 #14
62 ok(@$borrowers==0, "Search In Table columns filter surname  Val in exact search not found ");
63 $borrowers=eval{SearchInTable("borrowers",["Val",{member=>"Jean"}],undef,undef,[qw(borrowernumber)],[qw(firstname title)],"exact")};
64 #15
65 ok(@$borrowers==0 && !($@), "Search In Table fails gracefully when no correct field passed in hash");
66
67 $status=DeleteInTable("borrowers",{borrowernumber=>$borrid});
68 #16
69 ok($status>0 && !($@), "DeleteInTable OK");
70 $status=DeleteInTable("borrowers",{borrowernumber=>$borrtmp});