| @@ 2455-2513 (lines=59) @@ | ||
| 2452 | $this->assertSame($expectedJson, $scope->toJson()); |
|
| 2453 | } |
|
| 2454 | ||
| 2455 | public function testCustomLinkMerge() |
|
| 2456 | { |
|
| 2457 | $manager = new Manager(); |
|
| 2458 | $manager->setSerializer(new JsonApiSerializer('http://test.de')); |
|
| 2459 | ||
| 2460 | $bookData = [ |
|
| 2461 | 'id' => 1, |
|
| 2462 | 'title' => 'Foo', |
|
| 2463 | 'year' => '1991', |
|
| 2464 | '_author' => [ |
|
| 2465 | 'id' => 1, |
|
| 2466 | 'name' => 'Dave', |
|
| 2467 | ], |
|
| 2468 | 'links' => [ |
|
| 2469 | 'custom_link' => '/custom/link', |
|
| 2470 | ], |
|
| 2471 | ]; |
|
| 2472 | ||
| 2473 | $resource = new Item($bookData, new JsonApiBookTransformer('test.de'), 'books'); |
|
| 2474 | ||
| 2475 | $scope = new Scope($manager, $resource); |
|
| 2476 | ||
| 2477 | $expected = [ |
|
| 2478 | 'data' => [ |
|
| 2479 | 'type' => 'books', |
|
| 2480 | 'id' => '1', |
|
| 2481 | 'attributes' => [ |
|
| 2482 | 'title' => 'Foo', |
|
| 2483 | 'year' => 1991, |
|
| 2484 | ], |
|
| 2485 | 'links' => [ |
|
| 2486 | 'self' => 'http://test.de/books/1', |
|
| 2487 | 'custom_link' => '/custom/link', |
|
| 2488 | ], |
|
| 2489 | 'relationships' => [ |
|
| 2490 | 'author' => [ |
|
| 2491 | 'links' => [ |
|
| 2492 | 'self' => 'http://test.de/books/1/relationships/author', |
|
| 2493 | 'related' => 'http://test.de/books/1/author', |
|
| 2494 | ], |
|
| 2495 | ], |
|
| 2496 | 'co-author' => [ |
|
| 2497 | 'links' => [ |
|
| 2498 | 'self' => 'http://test.de/books/1/relationships/co-author', |
|
| 2499 | 'related' => 'http://test.de/books/1/co-author' |
|
| 2500 | ], |
|
| 2501 | ], |
|
| 2502 | 'author-with-meta' => [ |
|
| 2503 | 'links' => [ |
|
| 2504 | 'self' => 'http://test.de/books/1/relationships/author-with-meta', |
|
| 2505 | 'related' => 'http://test.de/books/1/author-with-meta' |
|
| 2506 | ], |
|
| 2507 | ], |
|
| 2508 | ], |
|
| 2509 | ], |
|
| 2510 | ]; |
|
| 2511 | ||
| 2512 | $this->assertSame(json_encode($expected), $scope->toJson()); |
|
| 2513 | } |
|
| 2514 | ||
| 2515 | public function testCustomLinkMergeNoLink() |
|
| 2516 | { |
|
| @@ 2571-2628 (lines=58) @@ | ||
| 2568 | $this->assertSame(json_encode($expected), $scope->toJson()); |
|
| 2569 | } |
|
| 2570 | ||
| 2571 | public function testCustomSelfLinkMerge() |
|
| 2572 | { |
|
| 2573 | $manager = new Manager(); |
|
| 2574 | $manager->setSerializer(new JsonApiSerializer('http://test.de')); |
|
| 2575 | ||
| 2576 | $bookData = [ |
|
| 2577 | 'id' => 1, |
|
| 2578 | 'title' => 'Foo', |
|
| 2579 | 'year' => '1991', |
|
| 2580 | '_author' => [ |
|
| 2581 | 'id' => 1, |
|
| 2582 | 'name' => 'Dave', |
|
| 2583 | ], |
|
| 2584 | 'links' => [ |
|
| 2585 | 'self' => '/custom/link', |
|
| 2586 | ], |
|
| 2587 | ]; |
|
| 2588 | ||
| 2589 | $resource = new Item($bookData, new JsonApiBookTransformer('test.de'), 'books'); |
|
| 2590 | ||
| 2591 | $scope = new Scope($manager, $resource); |
|
| 2592 | ||
| 2593 | $expected = [ |
|
| 2594 | 'data' => [ |
|
| 2595 | 'type' => 'books', |
|
| 2596 | 'id' => '1', |
|
| 2597 | 'attributes' => [ |
|
| 2598 | 'title' => 'Foo', |
|
| 2599 | 'year' => 1991, |
|
| 2600 | ], |
|
| 2601 | 'links' => [ |
|
| 2602 | 'self' => '/custom/link', |
|
| 2603 | ], |
|
| 2604 | 'relationships' => [ |
|
| 2605 | 'author' => [ |
|
| 2606 | 'links' => [ |
|
| 2607 | 'self' => 'http://test.de/books/1/relationships/author', |
|
| 2608 | 'related' => 'http://test.de/books/1/author', |
|
| 2609 | ], |
|
| 2610 | ], |
|
| 2611 | 'co-author' => [ |
|
| 2612 | 'links' => [ |
|
| 2613 | 'self' => 'http://test.de/books/1/relationships/co-author', |
|
| 2614 | 'related' => 'http://test.de/books/1/co-author' |
|
| 2615 | ], |
|
| 2616 | ], |
|
| 2617 | 'author-with-meta' => [ |
|
| 2618 | 'links' => [ |
|
| 2619 | 'self' => 'http://test.de/books/1/relationships/author-with-meta', |
|
| 2620 | 'related' => 'http://test.de/books/1/author-with-meta' |
|
| 2621 | ], |
|
| 2622 | ], |
|
| 2623 | ], |
|
| 2624 | ], |
|
| 2625 | ]; |
|
| 2626 | ||
| 2627 | $this->assertSame(json_encode($expected), $scope->toJson()); |
|
| 2628 | } |
|
| 2629 | ||
| 2630 | public function testEmptyAttributesIsObject() |
|
| 2631 | { |
|