From 11bdb916e9e46ca8d9d37975bf13cab423e3acca Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Thu, 24 Sep 2015 14:21:55 -0300 Subject: [PATCH] Bug 13799: (QA followup) make tests use random data With the introduction of TestBuilder there's no need to rely on existing data on the DB (the original patch relies on categories and branches already existing). This patch creates a random branch, category and two borrowers with the fixed data that is needed for the tests. It adjusts the tests to use the randomized data instead of the previously fixed one. Signed-off-by: Tomas Cohen Arazi The feature works as expected and all tests passes. koha-qa.pl too. Signed-off-by: Martin Renvoize --- t/db_dependent/api/v1/borrowers.t | 47 ++++++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/t/db_dependent/api/v1/borrowers.t b/t/db_dependent/api/v1/borrowers.t index aef9f4d..ae3e4a4 100644 --- a/t/db_dependent/api/v1/borrowers.t +++ b/t/db_dependent/api/v1/borrowers.t @@ -19,6 +19,7 @@ use Modern::Perl; use Test::More tests => 10; use Test::Mojo; +use t::lib::TestBuilder; use C4::Auth; use C4::Context; @@ -26,6 +27,8 @@ use C4::Context; use Koha::Database; use Koha::Borrower; +my $builder = t::lib::TestBuilder->new(); + my $dbh = C4::Context->dbh; $dbh->{AutoCommit} = 0; $dbh->{RaiseError} = 1; @@ -33,32 +36,34 @@ $dbh->{RaiseError} = 1; $ENV{REMOTE_ADDR} = '127.0.0.1'; my $t = Test::Mojo->new('Koha::REST::V1'); -my $categorycode = Koha::Database->new()->schema()->resultset('Category')->first()->categorycode(); -my $branchcode = Koha::Database->new()->schema()->resultset('Branch')->first()->branchcode(); - -my $borrower = Koha::Borrower->new; -$borrower->categorycode( $categorycode ); -$borrower->branchcode( $branchcode ); -$borrower->surname("Test Surname"); -$borrower->store; -my $borrowernumber = $borrower->borrowernumber; +my $categorycode = $builder->build({ source => 'Category' })->{ categorycode }; +my $branchcode = $builder->build({ source => 'Branch' })->{ branchcode }; +my $borrower = $builder->build({ + source => 'Borrower', + value => { + branchcode => $branchcode, + categorycode => $categorycode + } +}); $t->get_ok('/api/v1/borrowers') ->status_is(403); -$t->get_ok("/api/v1/borrowers/$borrowernumber") +$t->get_ok("/api/v1/borrowers/" . $borrower->{ borrowernumber }) ->status_is(403); -my $loggedinuser = Koha::Borrower->new; -$loggedinuser->categorycode($categorycode); -$loggedinuser->branchcode($branchcode); -$loggedinuser->userid('test_rest_api_user'); -$loggedinuser->flags(16); # flags for 'borrowers' permission only -$loggedinuser->store; +my $loggedinuser = $builder->build({ + source => 'Borrower', + value => { + branchcode => $branchcode, + categorycode => $categorycode, + flags => 16 # borrowers flag + } +}); my $session = C4::Auth::get_session(''); -$session->param('number', $loggedinuser->borrowernumber); -$session->param('id', $loggedinuser->userid); +$session->param('number', $loggedinuser->{ borrowernumber }); +$session->param('id', $loggedinuser->{ userid }); $session->param('ip', '127.0.0.1'); $session->param('lasttime', time()); $session->flush; @@ -69,11 +74,11 @@ $tx->req->env({REMOTE_ADDR => '127.0.0.1'}); $t->request_ok($tx) ->status_is(200); -$tx = $t->ua->build_tx(GET => "/api/v1/borrowers/$borrowernumber"); +$tx = $t->ua->build_tx(GET => "/api/v1/borrowers/" . $borrower->{ borrowernumber }); $tx->req->cookies({name => 'CGISESSID', value => $session->id}); $t->request_ok($tx) ->status_is(200) - ->json_is('/borrowernumber' => $borrowernumber) - ->json_is('/surname' => "Test Surname"); + ->json_is('/borrowernumber' => $borrower->{ borrowernumber }) + ->json_is('/surname' => $borrower->{ surname }); $dbh->rollback; -- 2.1.4