3 # This Koha test module is a stub!
4 # Add more tests here!!!
11 use C4::SQLHelper qw(:all);
13 use Test::More tests => 18;
17 use_ok('C4::SQLHelper');
21 my @categories=C4::Category->all;
22 my $branches=C4::Branch->GetBranches;
23 my @branchcodes=keys %$branches;
24 my ($borrid, $borrtmp);
25 ok($borrid=InsertInTable("borrowers",{firstname=>"Jean",surname=>"Valjean",city=>" ",zipcode=>" ",email=>"email",categorycode=>$categories[0]->{categorycode}, branchcode=>$branchcodes[0]}),"Insert In Table");
26 $borrtmp=InsertInTable("borrowers",{firstname=>"Jean",surname=>"cocteau",city=>" ",zipcode=>" ",email=>"email",categorycode=>$categories[0]->{categorycode}, branchcode=>$branchcodes[0]});
27 ok(my $status=UpdateInTable("borrowers",{borrowernumber=>$borrid,firstname=>"Jean",surname=>"Valjean",city=>"Dampierre",zipcode=>" ",email=>"email", branchcode=>$branchcodes[1]}),"Update In Table");
28 my $borrowers=SearchInTable("borrowers");
30 ok(@$borrowers>0, "Search In Table All values");
31 $borrowers=SearchInTable("borrowers",{borrowernumber=>$borrid});
33 ok(@$borrowers==1, "Search In Table by primary key on table");
34 $borrowers=SearchInTable("borrowers",{firstname=>"Jean"});
36 ok(@$borrowers>0, "Search In Table hashref");
37 $borrowers=SearchInTable("borrowers",{firstname=>"Jean"},[{firstname=>1},{borrowernumber=>1}],undef, [qw(borrowernumber)]);
38 ok(($$borrowers[0]{borrowernumber} + 0) > ($$borrowers[1]{borrowernumber} + 0), "Search In Table Order");
39 $borrowers=SearchInTable("borrowers",{firstname=>"Jean"},[{surname=>0},{firstname=>1}], undef, [qw(firstname surname)]);
40 ok(uc($$borrowers[0]{surname}) lt uc($$borrowers[1]{surname}), "Search In Table Order");
41 $borrowers=SearchInTable("borrowers","Jean");
43 ok(@$borrowers>0, "Search In Table string");
44 eval{$borrowers=SearchInTable("borrowers","Jean Valjean")};
46 ok(scalar(@$borrowers)==1 && !($@), "Search In Table does an implicit AND of all the words in strings");
47 $borrowers=SearchInTable("borrowers",["Valjean",{firstname=>"Jean"}]);
49 ok(@$borrowers>0, "Search In Table arrayref");
50 $borrowers=SearchInTable("borrowers",["Valjean",{firstname=>"Jean"}],undef,undef,[qw(borrowernumber)]);
52 ok(keys %{$$borrowers[0]} ==1, "Search In Table columns out limit");
53 $borrowers=SearchInTable("borrowers",["Valjean",{firstname=>"Jean"}],undef,undef,[qw(borrowernumber)],[qw(firstname surname title)]);
55 ok(@$borrowers>0, "Search In Table columns out limit to borrowernumber AND filter firstname surname title");
56 $borrowers=SearchInTable("borrowers",["Valjean",{firstname=>"Jean"}],undef,undef,[qw(borrowernumber)],[qw(firstname title)]);
58 ok(@$borrowers==0, "Search In Table columns filter firstname title limit Valjean not in other fields than surname ");
59 $borrowers=SearchInTable("borrowers",["Val",{firstname=>"Jean"}],undef,undef,[qw(borrowernumber)],[qw(surname)],"start_with");
61 ok(@$borrowers>0, "Search In Table columns filter surname Val on a wide search found ");
62 $borrowers=SearchInTable("borrowers",["Val",{firstname=>"Jean"}],undef,undef,[qw(borrowernumber)],[qw(surname)],"exact");
64 ok(@$borrowers==0, "Search In Table columns filter surname Val in exact search not found ");
65 $borrowers=eval{SearchInTable("borrowers",["Val",{member=>"Jean"}],undef,undef,[qw(borrowernumber)],[qw(firstname title)],"exact")};
67 ok(@$borrowers==0 && !($@), "Search In Table fails gracefully when no correct field passed in hash");
68 $borrowers=eval{SearchInTable("borrowers",["Jean"],undef,undef,undef,[qw(firstname surname borrowernumber)],"start_with")};
69 ok(@$borrowers==0 && !($@), "Search In Table fails gracefully when no correct field passed in hash");
71 $status=DeleteInTable("borrowers",{borrowernumber=>$borrid});
73 ok($status>0 && !($@), "DeleteInTable OK");
74 $status=DeleteInTable("borrowers",{borrowernumber=>$borrtmp});