From 0e463f21f41f0837b684514f072632316ebddd90 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Thu, 24 Sep 2015 14:21:55 -0300 Subject: [PATCH] [SIGNED OFF] 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. --- 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.5.3