View | Details | Raw Unified | Return to bug 24487
Collapse All | Expand All

(-)a/t/db_dependent/Koha/REST/Plugin/Objects.t (-6 / +26 lines)
Lines 65-74 get '/patrons/:patron_id/holds' => sub { Link Here
65
    $params->{patron_id} = $c->stash("patron_id");
65
    $params->{patron_id} = $c->stash("patron_id");
66
    $c->validation->output($params);
66
    $c->validation->output($params);
67
    my $holds_set = Koha::Holds->new;
67
    my $holds_set = Koha::Holds->new;
68
    my $holds     = $c->objects->search( $holds_set );
68
    my $holds     = $c->objects->search( $holds_set, \&to_model_holds );
69
    $c->render( status => 200, json => {count => scalar(@$holds)} );
69
    $c->render( status => 200, json => {count => scalar(@$holds)} );
70
};
70
};
71
71
72
sub to_model_holds {
73
    my ($params) = @_;
74
    $params->{borrowernumber} = delete $params->{patron_id};
75
    return $params;
76
}
77
72
sub to_model {
78
sub to_model {
73
    my $params = shift;
79
    my $params = shift;
74
80
Lines 99-110 use Koha::Database; Link Here
99
my $schema = Koha::Database->new->schema;
105
my $schema = Koha::Database->new->schema;
100
my $builder = t::lib::TestBuilder->new;
106
my $builder = t::lib::TestBuilder->new;
101
107
108
my $t = Test::Mojo->new;
109
102
subtest 'objects.search helper' => sub {
110
subtest 'objects.search helper' => sub {
103
111
104
    plan tests => 90;
112
    plan tests => 90;
105
113
106
    my $t = Test::Mojo->new;
107
108
    $schema->storage->txn_begin;
114
    $schema->storage->txn_begin;
109
115
110
    # Remove existing cities to have more control on the search restuls
116
    # Remove existing cities to have more control on the search restuls
Lines 285-297 subtest 'objects.search helper, sorting on mapped column' => sub { Link Here
285
};
291
};
286
292
287
subtest 'objects.search helper, with path parameters and _match' => sub {
293
subtest 'objects.search helper, with path parameters and _match' => sub {
288
    plan tests => 4;
294
    plan tests => 8;
289
295
290
    $schema->storage->txn_begin;
296
    $schema->storage->txn_begin;
291
297
292
    Koha::Holds->search()->delete;
298
    Koha::Holds->search()->delete;
293
299
294
    $builder->build_object({class=>"Koha::Holds", value => {borrowernumber => 10 }});
300
    my $patron = Koha::Patrons->find(10);
301
    $patron->delete if $patron;
302
    $patron = $builder->build_object( { class => "Koha::Patrons" } );
303
    $patron->borrowernumber(10)->store;
304
    $builder->build_object(
305
        {
306
            class => "Koha::Holds",
307
            value => { borrowernumber => $patron->borrowernumber }
308
        }
309
    );
295
310
296
    $t->get_ok('/patrons/1/holds?_match=exact')
311
    $t->get_ok('/patrons/1/holds?_match=exact')
297
      ->json_is('/count' => 0, 'there should be no holds for borrower 1 with _match=exact');
312
      ->json_is('/count' => 0, 'there should be no holds for borrower 1 with _match=exact');
Lines 299-303 subtest 'objects.search helper, with path parameters and _match' => sub { Link Here
299
    $t->get_ok('/patrons/1/holds?_match=contains')
314
    $t->get_ok('/patrons/1/holds?_match=contains')
300
      ->json_is('/count' => 0, 'there should be no holds for borrower 1 with _match=contains');
315
      ->json_is('/count' => 0, 'there should be no holds for borrower 1 with _match=contains');
301
316
317
    $t->get_ok('/patrons/10/holds?_match=exact')
318
      ->json_is('/count' => 1, 'there should be 1 hold for borrower 10 with _match=exact');
319
320
    $t->get_ok('/patrons/10/holds?_match=contains')
321
      ->json_is('/count' => 1, 'there should be 1 hold for borrower 10 with _match=contains');
322
302
    $schema->storage->txn_rollback;
323
    $schema->storage->txn_rollback;
303
};
324
};
304
- 

Return to bug 24487