@@ -228,10 +228,45 @@ public function testJsonApiIncludesSchema(): void
228
228
$ this ->tester ->run (['command ' => 'api:json-schema:generate ' , 'resource ' => 'ApiPlatform\Tests\Fixtures\TestBundle\Entity\Question ' , '--type ' => 'output ' , '--format ' => 'jsonapi ' ]);
229
229
$ result = $ this ->tester ->getDisplay ();
230
230
$ json = json_decode ($ result , associative: true );
231
+ $ properties = $ json ['definitions ' ]['Question.jsonapi ' ]['properties ' ]['data ' ]['properties ' ];
232
+ $ included = $ json ['definitions ' ]['Question.jsonapi ' ]['properties ' ]['included ' ];
231
233
232
- $ this ->assertArrayHasKey ('answer ' , $ json ['definitions ' ]['Question.jsonapi ' ]['properties ' ]['data ' ]['properties ' ]['relationships ' ]['properties ' ]);
233
- $ this ->assertArrayHasKey ('anyOf ' , $ json ['definitions ' ]['Question.jsonapi ' ]['properties ' ]['included ' ]['items ' ]);
234
- $ this ->assertArrayHasKey ('$ref ' , $ json ['definitions ' ]['Question.jsonapi ' ]['properties ' ]['included ' ]['items ' ]['anyOf ' ][0 ]);
235
- $ this ->assertSame ('#/definitions/Answer.jsonapi ' , $ json ['definitions ' ]['Question.jsonapi ' ]['properties ' ]['included ' ]['items ' ]['anyOf ' ][0 ]['$ref ' ]);
234
+ $ this ->assertArrayHasKey ('answer ' , $ properties ['relationships ' ]['properties ' ]);
235
+ $ this ->assertArrayHasKey ('anyOf ' , $ included ['items ' ]);
236
+ $ this ->assertCount (1 , $ included ['items ' ]['anyOf ' ]);
237
+ $ this ->assertArrayHasKey ('$ref ' , $ included ['items ' ]['anyOf ' ][0 ]);
238
+ $ this ->assertSame ('#/definitions/Answer.jsonapi ' , $ included ['items ' ]['anyOf ' ][0 ]['$ref ' ]);
239
+
240
+ $ this ->tester ->run (['command ' => 'api:json-schema:generate ' , 'resource ' => 'ApiPlatform\Tests\Fixtures\TestBundle\ApiResource\AnimalObservation ' , '--type ' => 'output ' , '--format ' => 'jsonapi ' ]);
241
+ $ result = $ this ->tester ->getDisplay ();
242
+ $ json = json_decode ($ result , associative: true );
243
+ $ properties = $ json ['definitions ' ]['AnimalObservation.jsonapi ' ]['properties ' ]['data ' ]['properties ' ];
244
+ $ included = $ json ['definitions ' ]['AnimalObservation.jsonapi ' ]['properties ' ]['included ' ];
245
+
246
+ $ this ->assertArrayHasKey ('individuals ' , $ properties ['relationships ' ]['properties ' ]);
247
+ $ this ->assertArrayNotHasKey ('individuals ' , $ properties ['attributes ' ]['properties ' ]);
248
+ $ this ->assertArrayHasKey ('anyOf ' , $ included ['items ' ]);
249
+ $ this ->assertCount (1 , $ included ['items ' ]['anyOf ' ]);
250
+ $ this ->assertSame ('#/definitions/Animal.jsonapi ' , $ included ['items ' ]['anyOf ' ][0 ]['$ref ' ]);
251
+
252
+ $ this ->tester ->run (['command ' => 'api:json-schema:generate ' , 'resource ' => 'ApiPlatform\Tests\Fixtures\TestBundle\ApiResource\Animal ' , '--type ' => 'output ' , '--format ' => 'jsonapi ' ]);
253
+ $ result = $ this ->tester ->getDisplay ();
254
+ $ json = json_decode ($ result , associative: true );
255
+ $ properties = $ json ['definitions ' ]['Animal.jsonapi ' ]['properties ' ]['data ' ]['properties ' ];
256
+ $ included = $ json ['definitions ' ]['Animal.jsonapi ' ]['properties ' ]['included ' ];
257
+
258
+ $ this ->assertArrayHasKey ('species ' , $ properties ['relationships ' ]['properties ' ]);
259
+ $ this ->assertArrayNotHasKey ('species ' , $ properties ['attributes ' ]['properties ' ]);
260
+ $ this ->assertArrayHasKey ('anyOf ' , $ included ['items ' ]);
261
+ $ this ->assertCount (1 , $ included ['items ' ]['anyOf ' ]);
262
+ $ this ->assertSame ('#/definitions/Species.jsonapi ' , $ included ['items ' ]['anyOf ' ][0 ]['$ref ' ]);
263
+
264
+ $ this ->tester ->run (['command ' => 'api:json-schema:generate ' , 'resource ' => 'ApiPlatform\Tests\Fixtures\TestBundle\ApiResource\Species ' , '--type ' => 'output ' , '--format ' => 'jsonapi ' ]);
265
+ $ result = $ this ->tester ->getDisplay ();
266
+ $ json = json_decode ($ result , associative: true );
267
+ $ properties = $ json ['definitions ' ]['Species.jsonapi ' ]['properties ' ]['data ' ]['properties ' ];
268
+
269
+ $ this ->assertArrayHasKey ('kingdom ' , $ properties ['attributes ' ]['properties ' ]);
270
+ $ this ->assertArrayHasKey ('phylum ' , $ properties ['attributes ' ]['properties ' ]);
236
271
}
237
272
}
0 commit comments