|
3 | 3 | use cebe\openapi\Reader; |
4 | 4 | use cebe\openapi\spec\OpenApi; |
5 | 5 | use cebe\openapi\spec\Reference; |
| 6 | +use cebe\openapi\spec\RequestBody; |
6 | 7 | use cebe\openapi\spec\Response; |
7 | 8 | use cebe\openapi\spec\Schema; |
8 | 9 | use cebe\openapi\spec\Example; |
@@ -193,4 +194,26 @@ public function testResolveFileHttp() |
193 | 194 | $this->assertArrayHasKey('name', $openapi->components->schemas['Dog']->properties); |
194 | 195 | } |
195 | 196 |
|
| 197 | + public function testResolvePaths() |
| 198 | + { |
| 199 | + /** @var $openapi OpenApi */ |
| 200 | + $openapi = Reader::readFromJsonFile(__DIR__ . '/data/reference/playlist.json', OpenApi::class, false); |
| 201 | + |
| 202 | + $result = $openapi->validate(); |
| 203 | + $this->assertEquals([], $openapi->getErrors()); |
| 204 | + $this->assertTrue($result); |
| 205 | + |
| 206 | + $playlistsBody = $openapi->paths['/playlist']->post->requestBody; |
| 207 | + $playlistBody = $openapi->paths['/playlist/{id}']->patch->requestBody; |
| 208 | + |
| 209 | + $this->assertInstanceOf(RequestBody::class, $playlistsBody); |
| 210 | + $this->assertInstanceOf(Reference::class, $playlistBody); |
| 211 | + |
| 212 | + $openapi->resolveReferences(); |
| 213 | + |
| 214 | + $newPlaylistBody = $openapi->paths['/playlist/{id}']->patch->requestBody; |
| 215 | + $this->assertInstanceOf(RequestBody::class, $playlistsBody); |
| 216 | + $this->assertInstanceOf(RequestBody::class, $newPlaylistBody); |
| 217 | + $this->assertSame($playlistsBody, $newPlaylistBody); |
| 218 | + } |
196 | 219 | } |
0 commit comments