use Test::More tests => 10;
use Test::Mojo;
+use t::lib::TestBuilder;
use C4::Auth;
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;
$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;
$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;