|
Lines 215-221
subtest 'TO_JSON tests' => sub {
Link Here
|
| 215 |
|
215 |
|
| 216 |
subtest "to_api() tests" => sub { |
216 |
subtest "to_api() tests" => sub { |
| 217 |
|
217 |
|
| 218 |
plan tests => 11; |
218 |
plan tests => 18; |
| 219 |
|
219 |
|
| 220 |
$schema->storage->txn_begin; |
220 |
$schema->storage->txn_begin; |
| 221 |
|
221 |
|
|
Lines 262-267
subtest "to_api() tests" => sub {
Link Here
|
| 262 |
my $illrequest = $builder->build_object({ class => 'Koha::Illrequests' }); |
262 |
my $illrequest = $builder->build_object({ class => 'Koha::Illrequests' }); |
| 263 |
is_deeply( $illrequest->to_api, $illrequest->TO_JSON, 'If no to_api_method present, return TO_JSON' ); |
263 |
is_deeply( $illrequest->to_api, $illrequest->TO_JSON, 'If no to_api_method present, return TO_JSON' ); |
| 264 |
|
264 |
|
|
|
265 |
my $item_class = Test::MockModule->new('Koha::Item'); |
| 266 |
$item_class->mock( 'to_api_mapping', |
| 267 |
sub { |
| 268 |
return { |
| 269 |
itemnumber => 'item_id' |
| 270 |
}; |
| 271 |
} |
| 272 |
); |
| 273 |
|
| 274 |
my $hold_class = Test::MockModule->new('Koha::Hold'); |
| 275 |
$hold_class->mock( 'to_api_mapping', |
| 276 |
sub { |
| 277 |
return { |
| 278 |
reserve_id => 'hold_id' |
| 279 |
}; |
| 280 |
} |
| 281 |
); |
| 282 |
|
| 283 |
my $biblio = $builder->build_sample_biblio(); |
| 284 |
my $item = $builder->build_sample_item({ biblionumber => $biblio->biblionumber }); |
| 285 |
my $hold = $builder->build_object({ class => 'Koha::Holds', value => { itemnumber => $item->itemnumber } }); |
| 286 |
|
| 287 |
my @embeds = ('items'); |
| 288 |
|
| 289 |
my $biblio_api = $biblio->to_api(\@embeds); |
| 290 |
|
| 291 |
ok(exists $biblio_api->{items}, 'Items where embedded in biblio results'); |
| 292 |
is($biblio_api->{items}->[0]->{item_id}, $item->itemnumber, 'Item matches'); |
| 293 |
ok(!exists $biblio_api->{items}->[0]->{holds}, 'No holds info should be embedded yet'); |
| 294 |
|
| 295 |
@embeds = ('items.holds'); |
| 296 |
$biblio_api = $biblio->to_api(\@embeds); |
| 297 |
|
| 298 |
ok(exists $biblio_api->{items}, 'Items where embedded in biblio results'); |
| 299 |
is($biblio_api->{items}->[0]->{item_id}, $item->itemnumber, 'Item still matches'); |
| 300 |
ok(exists $biblio_api->{items}->[0]->{holds}, 'Holds info should be embedded'); |
| 301 |
is($biblio_api->{items}->[0]->{holds}->[0]->{hold_id}, $hold->reserve_id, 'Hold matches'); |
| 302 |
|
| 265 |
$schema->storage->txn_rollback; |
303 |
$schema->storage->txn_rollback; |
| 266 |
}; |
304 |
}; |
| 267 |
|
305 |
|
| 268 |
- |
|
|