Bugzilla – Attachment 50577 Details for
Bug 16320
Refactor ILSDI_Services.t so it uses TestBuilder
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 16320: Refactor ILSDI_Services.t so it uses TestBuilder
Bug-16320-Refactor-ILSDIServicest-so-it-uses-TestB.patch (text/plain), 8.95 KB, created by
Marcel de Rooy
on 2016-04-22 11:54:04 UTC
(
hide
)
Description:
Bug 16320: Refactor ILSDI_Services.t so it uses TestBuilder
Filename:
MIME Type:
Creator:
Marcel de Rooy
Created:
2016-04-22 11:54:04 UTC
Size:
8.95 KB
patch
obsolete
>From 78b30f2bbd78a67fc63c8b6796b08dfc0169659d Mon Sep 17 00:00:00 2001 >From: Tomas Cohen Arazi <tomascohen@theke.io> >Date: Thu, 21 Apr 2016 13:11:02 -0300 >Subject: [PATCH] Bug 16320: Refactor ILSDI_Services.t so it uses TestBuilder >Content-Type: text/plain; charset=utf-8 > >This patch refactors the tests so they are corerctly built using TestBuilder >and wrapper inside a DB transaction in a less ambiguous way. > >To test: >- Verify that the tests pass with the patch: >- Run: > $ prove t/db_dependent/ILSDI_Services.t >=> SUCCESS: Tests pass >- Sign off :-D > >Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> >--- > t/db_dependent/ILSDI_Services.t | 171 +++++++++++++++++++-------------------- > 1 file changed, 83 insertions(+), 88 deletions(-) > >diff --git a/t/db_dependent/ILSDI_Services.t b/t/db_dependent/ILSDI_Services.t >index ee012e2..361e7ba 100644 >--- a/t/db_dependent/ILSDI_Services.t >+++ b/t/db_dependent/ILSDI_Services.t >@@ -1,122 +1,115 @@ > #!/usr/bin/perl > >+# This file is part of Koha. >+# >+# Koha is free software; you can redistribute it and/or modify it >+# under the terms of the GNU General Public License as published by >+# the Free Software Foundation; either version 3 of the License, or >+# (at your option) any later version. >+# >+# Koha is distributed in the hope that it will be useful, but >+# WITHOUT ANY WARRANTY; without even the implied warranty of >+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >+# GNU General Public License for more details. >+# >+# You should have received a copy of the GNU General Public License >+# along with Koha; if not, see <http://www.gnu.org/licenses>. >+ > use Modern::Perl; > >-use C4::Members qw/AddMember GetMember GetBorrowercategory/; >-use Koha::Libraries; > use CGI qw ( -utf8 ); > >-use Test::More tests => 16; >+use Test::More tests => 3; > use t::lib::Mocks; > use t::lib::TestBuilder; > >+use Koha::AuthUtils; >+ > BEGIN { > use_ok('C4::ILSDI::Services'); > } > >-my $dbh = C4::Context->dbh; >- >-# Start transaction >-$dbh->{AutoCommit} = 0; >-$dbh->{RaiseError} = 1; >- >-# Create patron >-my %data = ( >- firstname => 'my firstname', >- surname => 'my surname', >- categorycode => 'UT', >- branchcode => 'UT', >- cardnumber => 'ilsdi-cardnumber', >- userid => 'ilsdi-userid', >- password => 'ilsdi-password', >-); >- >-# Crate patron category >-unless ( GetBorrowercategory('UT') ) { >- $dbh->do("INSERT INTO categories >- (categorycode,description,enrolmentperiod,upperagelimit,enrolmentfee,overduenoticerequired,reservefee,category_type,default_privacy) >- VALUES >- ('UT','Unit tester',99,99,0.000000,1,0.000000,'C','default');"); >-} >- >-# Create library >-unless ( Koha::Libraries->find('UT') ) { >- $dbh->do("INSERT INTO branches (branchcode,branchname) VALUES ('UT','Unit test library');"); >-} >- >+my $schema = Koha::Database->schema; >+my $dbh = C4::Context->dbh; >+my $builder = t::lib::TestBuilder->new; > >-my $borrowernumber = AddMember(%data); >-my $borrower = GetMember( borrowernumber => $borrowernumber ); >+subtest 'AuthenticatePatron test' => sub { > >-{ # AuthenticatePatron test >+ plan tests => 14; > >- my $query = new CGI; >- $query->param('username',$borrower->{'userid'}); >- $query->param('password','ilsdi-password'); >- >- my $reply = C4::ILSDI::Services::AuthenticatePatron($query); >- is($reply->{'id'}, $borrowernumber, "userid and password - Patron authenticated"); >- is($reply->{'code'}, undef, "Error code undef"); >+ $schema->storage->txn_begin; > >- $query->param('password','ilsdi-passworD'); >- $reply = C4::ILSDI::Services::AuthenticatePatron($query); >- is($reply->{'code'}, 'PatronNotFound', "userid and wrong password - PatronNotFound"); >- is($reply->{'id'}, undef, "id undef"); >+ my $plain_password = 'tomasito'; > >- $query->param('password','ilsdi-password'); >- $query->param('username','wrong-ilsdi-useriD'); >- $reply = C4::ILSDI::Services::AuthenticatePatron($query); >- is($reply->{'code'}, 'PatronNotFound', "non-existing userid - PatronNotFound"); >- is($reply->{'id'}, undef, "id undef"); >+ my $borrower = $builder->build({ >+ source => 'Borrower', >+ value => { >+ password => Koha::AuthUtils::hash_password( $plain_password ) >+ } >+ }); > >- $query->param('username',uc($borrower->{'userid'})); >- $reply = C4::ILSDI::Services::AuthenticatePatron($query); >- is($reply->{'id'}, $borrowernumber, "userid is not case sensitive - Patron authenticated"); >- is($reply->{'code'}, undef, "Error code undef"); >+ my $query = new CGI; >+ $query->param( 'username', $borrower->{userid}); >+ $query->param( 'password', $plain_password); > >- $query->param('username',$borrower->{'cardnumber'}); >- $reply = C4::ILSDI::Services::AuthenticatePatron($query); >- is($reply->{'id'}, $borrowernumber, "cardnumber and password - Patron authenticated"); >- is($reply->{'code'}, undef, "Error code undef"); >+ my $reply = C4::ILSDI::Services::AuthenticatePatron( $query ); >+ is( $reply->{id}, $borrower->{borrowernumber}, "userid and password - Patron authenticated" ); >+ is( $reply->{code}, undef, "Error code undef"); > > $query->param('password','ilsdi-passworD'); >+ $reply = C4::ILSDI::Services::AuthenticatePatron( $query ); >+ is( $reply->{code}, 'PatronNotFound', "userid and wrong password - PatronNotFound" ); >+ is( $reply->{id}, undef, "id undef"); >+ >+ $query->param( 'password', $plain_password ); >+ $query->param( 'username', 'wrong-ilsdi-useriD' ); >+ $reply = C4::ILSDI::Services::AuthenticatePatron( $query ); >+ is( $reply->{code}, 'PatronNotFound', "non-existing userid - PatronNotFound" ); >+ is( $reply->{id}, undef, "id undef"); >+ >+ $query->param( 'username', uc( $borrower->{userid} )); >+ $reply = C4::ILSDI::Services::AuthenticatePatron( $query ); >+ is( $reply->{id}, $borrower->{borrowernumber}, "userid is not case sensitive - Patron authenticated" ); >+ is( $reply->{code}, undef, "Error code undef"); >+ >+ $query->param( 'username', $borrower->{cardnumber} ); >+ $reply = C4::ILSDI::Services::AuthenticatePatron( $query ); >+ is( $reply->{id}, $borrower->{borrowernumber}, "cardnumber and password - Patron authenticated" ); >+ is( $reply->{code}, undef, "Error code undef" ); >+ >+ $query->param( 'password', 'ilsdi-passworD' ); >+ $reply = C4::ILSDI::Services::AuthenticatePatron( $query ); >+ is( $reply->{code}, 'PatronNotFound', "cardnumber and wrong password - PatronNotFount" ); >+ is( $reply->{id}, undef, "id undef" ); >+ >+ $query->param( 'username', 'randomcardnumber1234' ); >+ $query->param( 'password', $plain_password ); > $reply = C4::ILSDI::Services::AuthenticatePatron($query); >- is($reply->{'code'}, 'PatronNotFound', "cardnumber and wrong password - PatronNotFount"); >- is($reply->{'id'}, undef, "id undef"); >+ is( $reply->{code}, 'PatronNotFound', "non-existing cardnumer/userid - PatronNotFound" ); >+ is( $reply->{id}, undef, "id undef"); > >- $query->param('username','randomcardnumber1234'); >- $query->param('password','ilsdi-password'); >- $reply = C4::ILSDI::Services::AuthenticatePatron($query); >- is($reply->{'code'}, 'PatronNotFound', "non-existing cardnumer/userid - PatronNotFound"); >- is($reply->{'id'}, undef, "id undef"); >+ $schema->storage->txn_rollback; >+}; > >-} >- >-# End transaction >-$dbh->rollback; >-$dbh->{AutoCommit} = 1; >-$dbh->{RaiseError} = 0; > >-my $schema = Koha::Database->schema; >-$schema->storage->txn_begin; >+subtest 'GetPatronInfo/GetBorrowerAttributes test for extended patron attributes' => sub { > >-$schema->resultset( 'Issue' )->delete_all; >-$schema->resultset( 'Borrower' )->delete_all; >-$schema->resultset( 'BorrowerAttribute' )->delete_all; >-$schema->resultset( 'BorrowerAttributeType' )->delete_all; >-$schema->resultset( 'Category' )->delete_all; >-$schema->resultset( 'Item' )->delete_all; # 'Branch' deps. on this >-$schema->resultset( 'Branch' )->delete_all; >+ plan tests => 1; > >+ $schema->storage->txn_begin; > >-{ # GetPatronInfo/GetBorrowerAttributes test for extended patron attributes: >+ $schema->resultset( 'Issue' )->delete_all; >+ $schema->resultset( 'Borrower' )->delete_all; >+ $schema->resultset( 'BorrowerAttribute' )->delete_all; >+ $schema->resultset( 'BorrowerAttributeType' )->delete_all; >+ $schema->resultset( 'Category' )->delete_all; >+ $schema->resultset( 'Item' )->delete_all; # 'Branch' deps. on this >+ $schema->resultset( 'Branch' )->delete_all; > > # Configure Koha to enable ILS-DI server and extended attributes: > t::lib::Mocks::mock_preference( 'ILS-DI', 1 ); > t::lib::Mocks::mock_preference( 'ExtendedPatronAttributes', 1 ); > >- my $builder = t::lib::TestBuilder->new; >- > # Set up a library/branch for our user to belong to: > my $lib = $builder->build( { > source => 'Branch', >@@ -195,7 +188,9 @@ $schema->resultset( 'Branch' )->delete_all; > > # Check results: > is_deeply( $reply->{'attributes'}, [ $cmp ], 'Test GetPatronInfo - show_attributes parameter' ); >-} > >-# Cleanup >-$schema->storage->txn_rollback; >+ # Cleanup >+ $schema->storage->txn_rollback; >+}; >+ >+1; >-- >1.7.10.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 16320
:
50531
|
50577
|
50578
|
50579
|
50587
|
50588
|
50873