From 79302c4f5f80533b61451da24ba40ab1c9e6ea09 Mon Sep 17 00:00:00 2001 From: Tomas Cohen Arazi Date: Thu, 24 Sep 2015 14:21:55 -0300 Subject: [PATCH] [PASSED QA] 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 Signed-off-by: Kyle M Hall --- t/db_dependent/api/v1/borrowers.t | 47 ++++++++++++++++++++---------------- 1 files 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; -- 1.7.2.5