Improving SQLHelper
[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 Data::Dumper;
9
10 use C4::SQLHelper qw(:all);
11
12 use Test::More tests => 14;
13
14 BEGIN {
15     use_ok('C4::SQLHelper');
16 }
17 use C4::Category;
18 use C4::Branch;
19 my @categories=C4::Category->all;
20 my $branches=C4::Branch->GetBranches;
21 my @branchcodes=keys %$branches;
22 my $borrid;
23 ok($borrid=InsertInTable("borrowers",{firstname=>"Jean",surname=>"Valjean",city=>" ",zipcode=>" ",email=>"email",categorycode=>$categories[0]->{categorycode}, branchcode=>$branchcodes[0]}),"Insert In Table");
24 ok(my $status=UpdateInTable("borrowers",{borrowernumber=>$borrid,firstname=>"Jean",surname=>"Valjean",city=>"ma6tVaCracker ",zipcode=>" ",email=>"email", branchcode=>$branchcodes[1]}),"Update In Table");
25 my $borrowers=SearchInTable("borrowers");
26 ok(@$borrowers>0, "Search In Table All values");
27 $borrowers=SearchInTable("borrowers",{firstname=>"Jean"});
28 ok(@$borrowers>0, "Search In Table hashref");
29 $borrowers=SearchInTable("borrowers","Jean");
30 ok(@$borrowers>0, "Search In Table string");
31 $borrowers=SearchInTable("borrowers",["Valjean",{firstname=>"Jean"}]);
32 ok(@$borrowers>0, "Search In Table arrayref");
33 $borrowers=SearchInTable("borrowers",["Valjean",{firstname=>"Jean"}],undef,undef,[qw(borrowernumber)]);
34 ok(keys %{$$borrowers[0]} ==1, "Search In Table columns out limit");
35 $borrowers=SearchInTable("borrowers",["Valjean",{firstname=>"Jean"}],undef,undef,[qw(borrowernumber)],[qw(firstname surname title)]);
36 ok(@$borrowers>0, "Search In Table columns out limit");
37 $borrowers=SearchInTable("borrowers",["Valjean",{firstname=>"Jean"}],undef,undef,[qw(borrowernumber)],[qw(firstname title)]);
38 ok(@$borrowers==0, "Search In Table columns filter firstname title limit Valjean not in other fields than surname ");
39 $borrowers=SearchInTable("borrowers",["Val",{firstname=>"Jean"}],undef,undef,[qw(borrowernumber)],[qw(surname)],"start_with");
40 ok(@$borrowers>0, "Search In Table columns filter surname  Val on a wide search found ");
41 $borrowers=SearchInTable("borrowers",["Val",{firstname=>"Jean"}],undef,undef,[qw(borrowernumber)],[qw(surname)],"exact");
42 ok(@$borrowers==0, "Search In Table columns filter surname  Val in exact search not found ");
43 $borrowers=eval{SearchInTable("borrowers",["Val",{member=>"Jean"}],undef,undef,[qw(borrowernumber)],[qw(firstname title)],"exact")};
44 ok(@$borrowers==0 && !($@), "Search In Table fails gracefully when no correct field passed in hash");
45 $status=DeleteInTable("borrowers",{borrowernumber=>$borrid});
46 ok($status>0 && !($@), "DeleteInTable OK");