| @@ 1024-1084 (lines=61) @@ | ||
| 1021 | $this->assertSame($expectedJson, $scope->toJson());  | 
                                |
| 1022 | }  | 
                                |
| 1023 | ||
| 1024 | public function testSerializingCollectionResourceWithSelfLink()  | 
                                |
| 1025 |     { | 
                                |
| 1026 | $baseUrl = 'http://example.com';  | 
                                |
| 1027 | $this->manager->setSerializer(new JsonApiSerializer($baseUrl));  | 
                                |
| 1028 | ||
| 1029 | $booksData = [  | 
                                |
| 1030 | [  | 
                                |
| 1031 | 'id' => 1,  | 
                                |
| 1032 | 'title' => 'Foo',  | 
                                |
| 1033 | 'year' => '1991',  | 
                                |
| 1034 | '_author' => [  | 
                                |
| 1035 | 'id' => 1,  | 
                                |
| 1036 | 'name' => 'Dave',  | 
                                |
| 1037 | ],  | 
                                |
| 1038 | ],  | 
                                |
| 1039 | [  | 
                                |
| 1040 | 'id' => 2,  | 
                                |
| 1041 | 'title' => 'Bar',  | 
                                |
| 1042 | 'year' => '1997',  | 
                                |
| 1043 | '_author' => [  | 
                                |
| 1044 | 'id' => 2,  | 
                                |
| 1045 | 'name' => 'Bob',  | 
                                |
| 1046 | ],  | 
                                |
| 1047 | ],  | 
                                |
| 1048 | ];  | 
                                |
| 1049 | ||
| 1050 | $resource = new Collection($booksData, new JsonApiBookTransformer(), 'books');  | 
                                |
| 1051 | $scope = new Scope($this->manager, $resource);  | 
                                |
| 1052 | ||
| 1053 | $expected = [  | 
                                |
| 1054 | 'data' => [  | 
                                |
| 1055 | [  | 
                                |
| 1056 | 'type' => 'books',  | 
                                |
| 1057 | 'id' => '1',  | 
                                |
| 1058 | 'attributes' => [  | 
                                |
| 1059 | 'title' => 'Foo',  | 
                                |
| 1060 | 'year' => 1991,  | 
                                |
| 1061 | ],  | 
                                |
| 1062 | 'links' => [  | 
                                |
| 1063 | 'self' => 'http://example.com/books/1',  | 
                                |
| 1064 | ],  | 
                                |
| 1065 | ],  | 
                                |
| 1066 | [  | 
                                |
| 1067 | 'type' => 'books',  | 
                                |
| 1068 | 'id' => '2',  | 
                                |
| 1069 | 'attributes' => [  | 
                                |
| 1070 | 'title' => 'Bar',  | 
                                |
| 1071 | 'year' => 1997,  | 
                                |
| 1072 | ],  | 
                                |
| 1073 | 'links' => [  | 
                                |
| 1074 | 'self' => 'http://example.com/books/2',  | 
                                |
| 1075 | ],  | 
                                |
| 1076 | ],  | 
                                |
| 1077 | ],  | 
                                |
| 1078 | ];  | 
                                |
| 1079 | ||
| 1080 | $this->assertSame($expected, $scope->toArray());  | 
                                |
| 1081 | ||
| 1082 |         $expectedJson = '{"data":[{"type":"books","id":"1","attributes":{"title":"Foo","year":1991},"links":{"self":"http:\/\/example.com\/books\/1"}},{"type":"books","id":"2","attributes":{"title":"Bar","year":1997},"links":{"self":"http:\/\/example.com\/books\/2"}}]}'; | 
                                |
| 1083 | $this->assertSame($expectedJson, $scope->toJson());  | 
                                |
| 1084 | }  | 
                                |
| 1085 | ||
| 1086 | public function testSerializingItemResourceWithLinksForHasOneRelationship()  | 
                                |
| 1087 |     { | 
                                |
| @@ 1086-1148 (lines=63) @@ | ||
| 1083 | $this->assertSame($expectedJson, $scope->toJson());  | 
                                |
| 1084 | }  | 
                                |
| 1085 | ||
| 1086 | public function testSerializingItemResourceWithLinksForHasOneRelationship()  | 
                                |
| 1087 |     { | 
                                |
| 1088 | $baseUrl = 'http://example.com';  | 
                                |
| 1089 | $this->manager->setSerializer(new JsonApiSerializer($baseUrl));  | 
                                |
| 1090 |         $this->manager->parseIncludes('author'); | 
                                |
| 1091 | ||
| 1092 | $bookData = [  | 
                                |
| 1093 | 'id' => 1,  | 
                                |
| 1094 | 'title' => 'Foo',  | 
                                |
| 1095 | 'year' => '1991',  | 
                                |
| 1096 | '_author' => [  | 
                                |
| 1097 | 'id' => 1,  | 
                                |
| 1098 | 'name' => 'Dave',  | 
                                |
| 1099 | ],  | 
                                |
| 1100 | ];  | 
                                |
| 1101 | ||
| 1102 | $resource = new Item($bookData, new JsonApiBookTransformer(), 'books');  | 
                                |
| 1103 | ||
| 1104 | $scope = new Scope($this->manager, $resource);  | 
                                |
| 1105 | ||
| 1106 | $expected = [  | 
                                |
| 1107 | 'data' => [  | 
                                |
| 1108 | 'type' => 'books',  | 
                                |
| 1109 | 'id' => '1',  | 
                                |
| 1110 | 'attributes' => [  | 
                                |
| 1111 | 'title' => 'Foo',  | 
                                |
| 1112 | 'year' => 1991,  | 
                                |
| 1113 | ],  | 
                                |
| 1114 | 'relationships' => [  | 
                                |
| 1115 | 'author' => [  | 
                                |
| 1116 | 'links' => [  | 
                                |
| 1117 | 'self' => 'http://example.com/books/1/relationships/author',  | 
                                |
| 1118 | 'related' => 'http://example.com/books/1/author',  | 
                                |
| 1119 | ],  | 
                                |
| 1120 | 'data' => [  | 
                                |
| 1121 | 'type' => 'people',  | 
                                |
| 1122 | 'id' => '1',  | 
                                |
| 1123 | ],  | 
                                |
| 1124 | ],  | 
                                |
| 1125 | ],  | 
                                |
| 1126 | 'links' => [  | 
                                |
| 1127 | 'self' => 'http://example.com/books/1',  | 
                                |
| 1128 | ],  | 
                                |
| 1129 | ],  | 
                                |
| 1130 | 'included' => [  | 
                                |
| 1131 | [  | 
                                |
| 1132 | 'type' => 'people',  | 
                                |
| 1133 | 'id' => '1',  | 
                                |
| 1134 | 'attributes' => [  | 
                                |
| 1135 | 'name' => 'Dave',  | 
                                |
| 1136 | ],  | 
                                |
| 1137 | 'links' => [  | 
                                |
| 1138 | 'self' => 'http://example.com/people/1',  | 
                                |
| 1139 | ],  | 
                                |
| 1140 | ],  | 
                                |
| 1141 | ],  | 
                                |
| 1142 | ];  | 
                                |
| 1143 | ||
| 1144 | $this->assertEquals($expected, $scope->toArray());  | 
                                |
| 1145 | ||
| 1146 |         $expectedJson = '{"data":{"type":"books","id":"1","attributes":{"title":"Foo","year":1991},"links":{"self":"http:\/\/example.com\/books\/1"},"relationships":{"author":{"links":{"self":"http:\/\/example.com\/books\/1\/relationships\/author","related":"http:\/\/example.com\/books\/1\/author"},"data":{"type":"people","id":"1"}}}},"included":[{"type":"people","id":"1","attributes":{"name":"Dave"},"links":{"self":"http:\/\/example.com\/people\/1"}}]}'; | 
                                |
| 1147 | $this->assertSame($expectedJson, $scope->toJson());  | 
                                |
| 1148 | }  | 
                                |
| 1149 | ||
| 1150 | public function testSerializingItemResourceWithLinksForHasManyRelationship()  | 
                                |
| 1151 |     { | 
                                |