* @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:----ZU1rkOc1x8sv+7RSSdQ3OAK+wBODg5fo6XbcHZpPEMVmnA88tFTkNdsjSsNf5NPmV7LUzKzggrDOSwn1DLrc+MU/sQqX68tOEu8NDKwUubzwAQgwhXjoOxHyl6AanI+33PkZ8ET/8Uwya943d6TmJEGGkv2Jf4R+gV2wpaR696A5Id+scF7wdZ9dcx1atkNI8MVbqPKrghm6Q6G16QDCA2EMtqATGcedYFB/iWZ6XHWW89zHiWS5lhEU5gp7mtUapZDHHBOStno/33W1ISsl6u5Bqnib1A+ufcQCdWPHtyfNqsJw5GVUz2EsRDDNF8uH+X9PsA9BEmDbpBRjd6NY39p97XrETfE+G0OYGOV2dQ7DSyoZjkg5k0Ynv6/8Cl1nMMQetKMbbS1hVoL2d0KczJzr5qjDfyWea1RmpI2RBB9g6mys6OWddo/X5Dit3TM6VmPZnSh3Hr998mnMAaEocbpnMNw8hV6wiWRnUhlNopJYOBTKfncTNSht7kDafnZKgGDkNlxjgv8aNEhl9JnnJaOYd0jx/VvxB4srvBT7ieVeu2iGwCV5VfXjrlDlablJ7fOlEy1gOCnsHZsy74RokznD5m6qQz0Jy+UqFgeSX4fpKOdw9v7dfs8FTSuZZwVG2E1Xbs9+3tS67MTgamTNND0YcDKPq/byZyS7kzevnIg=----ATTACHMENT:----NTc1MTk1NDc1MzQxMTQ0MCAzMjc0NDA0OTk0MzY3NDM4IDQxNDk0NDE1OTQ5OTg5NDE=