Bug 15181: Rename marc21 fast add framework sql file
[koha.git] / t / db_dependent / ILSDI_Services.t
blob9aee73e2928e71fc0235de8f2ce06ac09f404598
1 #!/usr/bin/perl
3 use Modern::Perl;
5 use C4::Members qw/AddMember GetMember GetBorrowercategory/;
6 use C4::Branch;
7 use CGI qw ( -utf8 );
9 use Test::More tests => 15;
11 BEGIN {
12 use_ok('C4::ILSDI::Services');
15 my $dbh = C4::Context->dbh;
17 # Start transaction
18 $dbh->{AutoCommit} = 0;
19 $dbh->{RaiseError} = 1;
21 # Create patron
22 my %data = (
23 firstname => 'my firstname',
24 surname => 'my surname',
25 categorycode => 'UT',
26 branchcode => 'UT',
27 cardnumber => 'ilsdi-cardnumber',
28 userid => 'ilsdi-userid',
29 password => 'ilsdi-password',
32 # Crate patron category
33 unless ( GetBorrowercategory('UT') ) {
34 $dbh->do("INSERT INTO categories
35 (categorycode,description,enrolmentperiod,upperagelimit,enrolmentfee,overduenoticerequired,reservefee,category_type,default_privacy)
36 VALUES
37 ('UT','Unit tester',99,99,0.000000,1,0.000000,'C','default');");
40 # Create branch
41 unless ( GetBranchDetail('UT') ) {
42 $dbh->do("INSERT INTO branches (branchcode,branchname) VALUES ('UT','Unit test library');");
46 my $borrowernumber = AddMember(%data);
47 my $borrower = GetMember( borrowernumber => $borrowernumber );
49 { # AuthenticatePatron test
51 my $query = new CGI;
52 $query->param('username',$borrower->{'userid'});
53 $query->param('password','ilsdi-password');
55 my $reply = C4::ILSDI::Services::AuthenticatePatron($query);
56 is($reply->{'id'}, $borrowernumber, "userid and password - Patron authenticated");
57 is($reply->{'code'}, undef, "Error code undef");
59 $query->param('password','ilsdi-passworD');
60 $reply = C4::ILSDI::Services::AuthenticatePatron($query);
61 is($reply->{'code'}, 'PatronNotFound', "userid and wrong password - PatronNotFound");
62 is($reply->{'id'}, undef, "id undef");
64 $query->param('password','ilsdi-password');
65 $query->param('username','wrong-ilsdi-useriD');
66 $reply = C4::ILSDI::Services::AuthenticatePatron($query);
67 is($reply->{'code'}, 'PatronNotFound', "non-existing userid - PatronNotFound");
68 is($reply->{'id'}, undef, "id undef");
70 $query->param('username',uc($borrower->{'userid'}));
71 $reply = C4::ILSDI::Services::AuthenticatePatron($query);
72 is($reply->{'id'}, $borrowernumber, "userid is not case sensitive - Patron authenticated");
73 is($reply->{'code'}, undef, "Error code undef");
75 $query->param('username',$borrower->{'cardnumber'});
76 $reply = C4::ILSDI::Services::AuthenticatePatron($query);
77 is($reply->{'id'}, $borrowernumber, "cardnumber and password - Patron authenticated");
78 is($reply->{'code'}, undef, "Error code undef");
80 $query->param('password','ilsdi-passworD');
81 $reply = C4::ILSDI::Services::AuthenticatePatron($query);
82 is($reply->{'code'}, 'PatronNotFound', "cardnumber and wrong password - PatronNotFount");
83 is($reply->{'id'}, undef, "id undef");
85 $query->param('username','randomcardnumber1234');
86 $query->param('password','ilsdi-password');
87 $reply = C4::ILSDI::Services::AuthenticatePatron($query);
88 is($reply->{'code'}, 'PatronNotFound', "non-existing cardnumer/userid - PatronNotFound");
89 is($reply->{'id'}, undef, "id undef");