| @@ 73-127 (lines=55) @@ | ||
| 70 | $this->assertSame($expectedJson, $scope->toJson()); |
|
| 71 | } |
|
| 72 | ||
| 73 | public function testSerializingItemResourceWithHasOneDasherizedInclude() |
|
| 74 | { |
|
| 75 | $this->manager->parseIncludes('co-author'); |
|
| 76 | ||
| 77 | $bookData = [ |
|
| 78 | 'id' => 1, |
|
| 79 | 'title' => 'Foo', |
|
| 80 | 'year' => '1991', |
|
| 81 | '_author' => [ |
|
| 82 | 'id' => 1, |
|
| 83 | 'name' => 'Dave', |
|
| 84 | ], |
|
| 85 | '_co_author' => [ |
|
| 86 | 'id' => 2, |
|
| 87 | 'name' => 'Jim', |
|
| 88 | ], |
|
| 89 | ]; |
|
| 90 | ||
| 91 | $resource = new Item($bookData, new JsonApiBookTransformer(), 'books'); |
|
| 92 | ||
| 93 | $scope = new Scope($this->manager, $resource); |
|
| 94 | ||
| 95 | $expected = [ |
|
| 96 | 'data' => [ |
|
| 97 | 'type' => 'books', |
|
| 98 | 'id' => '1', |
|
| 99 | 'attributes' => [ |
|
| 100 | 'title' => 'Foo', |
|
| 101 | 'year' => 1991, |
|
| 102 | ], |
|
| 103 | 'relationships' => [ |
|
| 104 | 'co-author' => [ |
|
| 105 | 'data' => [ |
|
| 106 | 'type' => 'people', |
|
| 107 | 'id' => '2', |
|
| 108 | ], |
|
| 109 | ], |
|
| 110 | ], |
|
| 111 | ], |
|
| 112 | 'included' => [ |
|
| 113 | [ |
|
| 114 | 'type' => 'people', |
|
| 115 | 'id' => '2', |
|
| 116 | 'attributes' => [ |
|
| 117 | 'name' => 'Jim', |
|
| 118 | ], |
|
| 119 | ], |
|
| 120 | ], |
|
| 121 | ]; |
|
| 122 | ||
| 123 | $this->assertSame($expected, $scope->toArray()); |
|
| 124 | ||
| 125 | $expectedJson = '{"data":{"type":"books","id":"1","attributes":{"title":"Foo","year":1991},"relationships":{"co-author":{"data":{"type":"people","id":"2"}}}},"included":[{"type":"people","id":"2","attributes":{"name":"Jim"}}]}'; |
|
| 126 | $this->assertSame($expectedJson, $scope->toJson()); |
|
| 127 | } |
|
| 128 | ||
| 129 | public function testSerializingItemResourceWithEmptyHasOneInclude() |
|
| 130 | { |
|
| @@ 344-395 (lines=52) @@ | ||
| 341 | $this->assertSame($expectedJson, $scope->toJson()); |
|
| 342 | } |
|
| 343 | ||
| 344 | public function testSerializingCollectionResourceWithoutIncludes() |
|
| 345 | { |
|
| 346 | $booksData = [ |
|
| 347 | [ |
|
| 348 | 'id' => 1, |
|
| 349 | 'title' => 'Foo', |
|
| 350 | 'year' => '1991', |
|
| 351 | '_author' => [ |
|
| 352 | 'id' => 1, |
|
| 353 | 'name' => 'Dave', |
|
| 354 | ], |
|
| 355 | ], |
|
| 356 | [ |
|
| 357 | 'id' => 2, |
|
| 358 | 'title' => 'Bar', |
|
| 359 | 'year' => '1997', |
|
| 360 | '_author' => [ |
|
| 361 | 'id' => 2, |
|
| 362 | 'name' => 'Bob', |
|
| 363 | ], |
|
| 364 | ], |
|
| 365 | ]; |
|
| 366 | ||
| 367 | $resource = new Collection($booksData, new JsonApiBookTransformer(), 'books'); |
|
| 368 | $scope = new Scope($this->manager, $resource); |
|
| 369 | ||
| 370 | $expected = [ |
|
| 371 | 'data' => [ |
|
| 372 | [ |
|
| 373 | 'type' => 'books', |
|
| 374 | 'id' => '1', |
|
| 375 | 'attributes' => [ |
|
| 376 | 'title' => 'Foo', |
|
| 377 | 'year' => 1991, |
|
| 378 | ], |
|
| 379 | ], |
|
| 380 | [ |
|
| 381 | 'type' => 'books', |
|
| 382 | 'id' => '2', |
|
| 383 | 'attributes' => [ |
|
| 384 | 'title' => 'Bar', |
|
| 385 | 'year' => 1997, |
|
| 386 | ], |
|
| 387 | ], |
|
| 388 | ], |
|
| 389 | ]; |
|
| 390 | ||
| 391 | $this->assertSame($expected, $scope->toArray()); |
|
| 392 | ||
| 393 | $expectedJson = '{"data":[{"type":"books","id":"1","attributes":{"title":"Foo","year":1991}},{"type":"books","id":"2","attributes":{"title":"Bar","year":1997}}]}'; |
|
| 394 | $this->assertSame($expectedJson, $scope->toJson()); |
|
| 395 | } |
|
| 396 | ||
| 397 | public function testSerializingCollectionResourceWithHasOneInclude() |
|
| 398 | { |
|
| @@ 763-817 (lines=55) @@ | ||
| 760 | $this->assertSame($expectedJson, $scope->toJson()); |
|
| 761 | } |
|
| 762 | ||
| 763 | public function testSerializingCollectionResourceWithMeta() |
|
| 764 | { |
|
| 765 | $booksData = [ |
|
| 766 | [ |
|
| 767 | 'id' => 1, |
|
| 768 | 'title' => 'Foo', |
|
| 769 | 'year' => '1991', |
|
| 770 | '_author' => [ |
|
| 771 | 'name' => 'Dave', |
|
| 772 | ], |
|
| 773 | ], |
|
| 774 | [ |
|
| 775 | 'id' => 2, |
|
| 776 | 'title' => 'Bar', |
|
| 777 | 'year' => '1997', |
|
| 778 | '_author' => [ |
|
| 779 | 'name' => 'Bob', |
|
| 780 | ], |
|
| 781 | ], |
|
| 782 | ]; |
|
| 783 | ||
| 784 | $resource = new Collection($booksData, new JsonApiBookTransformer(), 'books'); |
|
| 785 | $resource->setMetaValue('foo', 'bar'); |
|
| 786 | ||
| 787 | $scope = new Scope($this->manager, $resource); |
|
| 788 | ||
| 789 | $expected = [ |
|
| 790 | 'data' => [ |
|
| 791 | [ |
|
| 792 | 'type' => 'books', |
|
| 793 | 'id' => '1', |
|
| 794 | 'attributes' => [ |
|
| 795 | 'title' => 'Foo', |
|
| 796 | 'year' => 1991, |
|
| 797 | ], |
|
| 798 | ], |
|
| 799 | [ |
|
| 800 | 'type' => 'books', |
|
| 801 | 'id' => '2', |
|
| 802 | 'attributes' => [ |
|
| 803 | 'title' => 'Bar', |
|
| 804 | 'year' => 1997, |
|
| 805 | ], |
|
| 806 | ], |
|
| 807 | ], |
|
| 808 | 'meta' => [ |
|
| 809 | 'foo' => 'bar', |
|
| 810 | ], |
|
| 811 | ]; |
|
| 812 | ||
| 813 | $this->assertSame($expected, $scope->toArray()); |
|
| 814 | ||
| 815 | $expectedJson = '{"data":[{"type":"books","id":"1","attributes":{"title":"Foo","year":1991}},{"type":"books","id":"2","attributes":{"title":"Bar","year":1997}}],"meta":{"foo":"bar"}}'; |
|
| 816 | $this->assertSame($expectedJson, $scope->toJson()); |
|
| 817 | } |
|
| 818 | ||
| 819 | public function testSerializingCollectionResourceWithDuplicatedIncludeData() |
|
| 820 | { |
|