* @license http://www.apache.org/licenses/LICENSE-2.0 * @link http://phpsx.org */ abstract class GeneratorTestCase extends ApiManagerTestCase { protected function getSpecification(): SpecificationInterface { $builder = $this->apiManager->getBuilder(Resource::STATUS_ACTIVE, '/foo/:name/:type'); $builder->setTitle('foo'); $builder->setDescription('lorem ipsum'); $path = $builder->setPathParameters('Path'); $path->addString('name') ->setDescription('Name parameter') ->setMinLength(0) ->setMaxLength(16) ->setPattern('[A-z]+'); $path->addString('type') ->setEnum(['foo', 'bar']); $path->setRequired(['name']); $get = $builder->addMethod('GET'); $get->setDescription('Returns a collection'); $get->setOperationId('list.foo'); $query = $get->setQueryParameters('GetQuery'); $query->addInteger('startIndex') ->setDescription('startIndex parameter') ->setMinimum(0) ->setMaximum(32); $query->addNumber('float'); $query->addBoolean('boolean'); $query->addDate('date'); $query->addDateTime('datetime'); $query->setRequired(['startIndex']); $get->addResponse(200, Schema\Collection::class); $post = $builder->addMethod('POST'); $post->setOperationId('create.foo'); $post->setRequest(Schema\Create::class); $post->addResponse(201, Schema\Message::class); $put = $builder->addMethod('PUT'); $put->setRequest(Schema\Update::class); $put->addResponse(200, Schema\Message::class); $delete = $builder->addMethod('DELETE'); $delete->setRequest(Schema\Delete::class); $delete->addResponse(200, Schema\Message::class); $patch = $builder->addMethod('PATCH'); $patch->setRequest(Schema\Patch::class); $patch->addResponse(200, Schema\Message::class); return $builder->getSpecification(); } protected function getSpecificationCollection(): SpecificationInterface { $builder = $this->apiManager->getBuilder(Resource::STATUS_ACTIVE, '/foo'); $builder->setTitle('foo'); $get = $builder->addMethod('GET'); $get->setDescription('Returns a collection'); $get->addResponse(200, Schema\Collection::class); $post = $builder->addMethod('POST'); $post->setRequest(Schema\Create::class); $post->addResponse(201, Schema\Message::class); $builder = $builder->addResource(Resource::STATUS_ACTIVE, '/bar/:foo'); $builder->setTitle('bar'); $builder->setPathParameters('PathFoo')->addString('foo'); $get = $builder->addMethod('GET'); $get->setDescription('Returns a collection'); $get->addResponse(200, Schema\Collection::class); $post = $builder->addMethod('POST'); $post->setRequest(Schema\Create::class); $post->addResponse(201, Schema\Message::class); $builder = $builder->addResource(Resource::STATUS_ACTIVE, '/bar/$year<[0-9]+>'); $builder->setTitle('bar'); $builder->setPathParameters('PathYear')->addString('year'); $get = $builder->addMethod('GET'); $get->setDescription('Returns a collection'); $get->addResponse(200, Schema\Collection::class); $post = $builder->addMethod('POST'); $post->setRequest(Schema\Create::class); $post->addResponse(201, Schema\Message::class); return $builder->getSpecification(); } protected function getSpecificationComplex(): SpecificationInterface { $builder = $this->apiManager->getBuilder(Resource::STATUS_ACTIVE, '/foo/:name/:type'); $builder->setTitle('foo'); $builder->setDescription('lorem ipsum'); $path = $builder->setPathParameters('Path'); $path->addString('name'); $path->addString('type'); $path->setRequired(['name', 'type']); $post = $builder->addMethod('POST'); $post->setDescription('Returns a collection'); $post->setOperationId('postEntryOrMessage'); $post->setTags(['foo']); $post->setRequest(Schema\Complex::class); $post->addResponse(200, Schema\Complex::class); $post->setSecurity('OAuth2', ['foo']); return $builder->getSpecification(); } protected function getPaths() { return array(); } protected function writeChunksToFolder(Chunks $result, string $target) { foreach ($result->getChunks() as $file => $code) { $code = str_replace(date('Y-m-d'), '0000-00-00', $code); file_put_contents($target . '/' . $file, $code); } } } __halt_compiler();----SIGNATURE:----bKJpZ46vnPWzZVC59PDq17Jerr+vxan8zxvnuQOVGlFjLYVjKCDxro29+cDSGKL0gleHbczR79jr4ySKe/C0AAVKdwn3VobGKKcz72DmK3U86Tcf2sqXWRelauodBQ8j0IY+d0oK/+p+0LHDi0K/SpLSwwy43lziRfkwFa0NBpyDISgBybRnSPV8su3TPzxuHoCFUBJhVIf55BCxmEwyUqSvLYjzpsbVcXn8ACi/1IoVxN5OPPb4gWNUVOPDJK6aaFOB+9+KpSH2c+HuiiPwQG8r9J3+lQgRQieJNGSA8slLExgONGrpd0hNKO5NvWCuJFzLGFFSnNK6S4JtzjdC0WkUpGdB6GJ3Hl4+EqrrR5OonkRQM0TSPlmprugp4n3Sn4xcsELwoq05jCF1cnMWrAXnpFogN31VJpyMnnyaks3VgTlDqceXuuqqkJ3Frbcwek8c8GrrRQ4T9bE/VYcS5Ts7oUkbRfLGXTSikBp48V/tmiBCvDJx5n+Jp1/ktNXKepzIW246CGjtAvaYNdIZLpXeJCbvAjI7MO8YoBTNTdkZ4JfkQX2Olk94EMVOU/ErseODc2dV2ozmIDJQYrBt1N1xtse9o5fcaggWeHUQ+5XY0iuqUchg8mE1CzPaxAqmi8CXzPEF79SUv9rWPocZ+T6cQMonMNwPeq38BP31LC4=----ATTACHMENT:----NTgyMjU1ODczNDc4OTkwMSAzOTE0MTc5OTg1ODQ5ODc1IDMwNzI0MDY3MjgwNzk1NTg=