* @license http://www.apache.org/licenses/LICENSE-2.0 * @link http://phpsx.org */ abstract class ParserTestCase extends ApiManagerTestCase { public function testParseSimple() { $specification = $this->getSpecification(); $definitions = $specification->getDefinitions(); $resource = $specification->getResourceCollection()->get('/foo'); $this->assertEquals('/foo', $resource->getPath()); $this->assertEquals('Test', $resource->getTitle()); $this->assertEquals('Test description', $resource->getDescription()); $path = $definitions->getType($resource->getPathParameters()); $this->assertInstanceOf(TypeInterface::class, $path); $this->assertInstanceOf(TypeInterface::class, $path->getProperty('fooId')); $methods = $resource->getMethods(); $this->assertEquals(['GET'], array_keys($methods)); $this->assertEquals('A long **Test** description', $methods['GET']->getDescription()); $query = $definitions->getType($methods['GET']->getQueryParameters()); $this->assertInstanceOf(TypeInterface::class, $query->getProperty('foo')); $this->assertEquals('Test', $query->getProperty('foo')->getDescription()); $this->assertInstanceOf(TypeInterface::class, $query->getProperty('bar')); $this->assertInstanceOf(TypeInterface::class, $query->getProperty('baz')); $this->assertEquals(['foo', 'bar'], $query->getProperty('baz')->getEnum()); $this->assertInstanceOf(TypeInterface::class, $query->getProperty('boz')); $this->assertEquals('[A-z]+', $query->getProperty('boz')->getPattern()); $this->assertInstanceOf(TypeInterface::class, $query); $this->assertInstanceOf(TypeInterface::class, $query->getProperty('integer')); $this->assertInstanceOf(TypeInterface::class, $query->getProperty('number')); $this->assertInstanceOf(TypeInterface::class, $query->getProperty('date')); $this->assertInstanceOf(TypeInterface::class, $query->getProperty('boolean')); $this->assertInstanceOf(TypeInterface::class, $query->getProperty('string')); $request = $definitions->getType($methods['GET']->getRequest()); if ($request instanceof ReferenceType) { $request = $definitions->getType($request->getRef()); } $this->assertInstanceOf(StructType::class, $request); $this->assertInstanceOf(StringType::class, $request->getProperty('artist')); $response = $definitions->getType($methods['GET']->getResponse(200)); if ($response instanceof ReferenceType) { $response = $definitions->getType($response->getRef()); } $this->assertInstanceOf(StructType::class, $response); $this->assertInstanceOf(StringType::class, $response->getProperty('artist')); } /** * @return \PSX\Api\SpecificationInterface */ abstract protected function getSpecification(): SpecificationInterface; } __halt_compiler();----SIGNATURE:----Ss/P200AVEW1IaVgsnSj+IRy/9+zQZ7HPIgNxkTwppO5iKTXLsKxrGcNBX2+VA/x+N1V161YIGRzAJoffh+euArMC5gz36nYGqufzHBrPP4QoKIk3AsE4JARyb3BVepHYdRU+Ydihcqpo20q+84iQBaDCuvLlo8rYTh3fBbr5ONNNXumRa0wHpAl4s+HD4ocqiBPRv9LgLT5jwKy+Wm6gUt/ocHIFM53YqNNq+g/axgTODPP/XuDgCdUxoTF3qNcsAVJM8qlvh3Mi/3DIg6uLpZ+CnPEHhb81ocVcxNObnedY6SqxrOPltAqZYuT5NvLPJ/0BZKBxhO+Ck3CBDOVkp/i+L3pXBE4Lj+0EO0gj5/Ykkk2H/1s/EmYNQeEn/D+5snunLu6vJhB/YoLiXqUZSDDDw02EPTTb+EOaaTB2bAp/6MN+yWGcYvyMnwOLuiTE1Sh5NKRYsa0yPWSedr6vhTIyw5QRkq5A7N8MGqLReCOUxLTYX3luny5wkb4lk7BIbodpfWDIJq9qnWGK1BzD65fc+Ph0bGnn2B7U55b97lI6GgpQyvJHsSnoQceZlBext8j5gq1w2kMsV9hQ089WoytNuqX95Kk77yJbyXPrA8Gj4NwRFdIrpAttiK446osQIrgYjS0YrYEEFy39bLHlnQLzJZYxnyLYnQXObniREA=----ATTACHMENT:----MjM4NTA3OTI2Mjg0MzMyIDc3Mzk3NTE5NzkzNDM3MDcgOTU0NjQ4NTA1MDA0ODY5NQ==