* @license http://www.apache.org/licenses/LICENSE-2.0 * @link http://phpsx.org */ class AsyncAPITest extends TestCase { public function testModel() { $asyncAPI = new AsyncAPI(); $info = new Info(); $info->setTitle('Account Service'); $info->setVersion('1.0.0'); $info->setDescription('This service is in charge of processing user signups :rocket:'); $asyncAPI->setInfo($info); $message = new Message(); $message->setPayload(Record::fromArray(['$ref' => '#/components/schemas/Pet'])); $http = new HttpOperationBinding(); $http->setType('request'); $http->setMethod('POST'); $bindings = new OperationBindings(); $bindings->setHttp($http); $operation = new Operation(); $operation->setMessage($message); $operation->setBindings($bindings); $channel = new Channel(); $channel->setPublish($operation); $channels = new Channels(); $channels['user/signedup'] = $channel; $asyncAPI->setChannels($channels); // schema $schemas = new Schemas(); $schemas['Pet'] = [ 'required' => ['id', 'name'], 'properties' => [ 'id' => ['type' => 'integer', 'format' => 'int64'], 'name' => ['type' => 'string'], 'tag' => ['type' => 'string'], ] ]; $components = new Components(); $components->setSchemas($schemas); $asyncAPI->setComponents($components); $dumper = new Dumper(); $actual = json_encode($dumper->dump($asyncAPI), JSON_PRETTY_PRINT); $expect = file_get_contents(__DIR__ . '/resources/asyncapi.json'); $this->assertJsonStringEqualsJsonString($expect, $actual, $actual); } } __halt_compiler();----SIGNATURE:----nBCf9AgWgvx9PG/n6PYZQ+ADroWMHbtZ29/hcUpW/PFKllzso3Zk2YZjuMiTP6deF0rsRPdJGaDGYi6gslzoaXZkPZhffZQd/OR/YP/m7tm0AxrL7X2sSFmFiSZnGhBHffB25KM5BFCV5zBqbD9I7iZU79v1ywjfMp/47EHUOWmEyA5M1e9I3RhFa7BWlncE89OqKUua6NEYes59Bf7LxIfWB5NGXTcCZOzKwk/ZbgE3uiEi7iSJuENKEDnP5CRptXzqZvM83LxqTp5+ZyFrc35ia3zKPaWX/mx/CGYY3Bto2j0WSaLSWgWt2AQ8t8vyrDIxumgxfeaxdPpGdLI5F6aDV8R5IzwT+a9JMCOlKdtFGdKkgoOqDv0sLo0QJpJkakl1We6zMnVU2EATTWR3t8tuoQcwFGq/gKDSHqClUDclhcwUJ1eKDHczmMCMyuFSEREyTiFcyt/c8Yi5cQJYyBFogbaJorC3vmJd3ro0n+Yvn7YnMuAjHINAqxUzGfAb8iRdgosilMuosxOBt1CxvmCLqKfUARtDwxH+EvFlRm1EnPkRQfJMcL4zo3tp4e9Rv1QlzrLSE3Xpe3wZageX/WcyqAk16ZkBvWyIT4aeM/HhIHKJ1AYSfTz3XsY7zKSbmzRBXNW/QSamuNAvLiRxY6eJjOHmW4YOzJ//roWYLiA=----ATTACHMENT:----MTU3MDM0MDI2NTA5NzIwOCA2MDExMDM2NjA0Mzg5OTk2IDUxMjkyNDYwNzk2MDE0MA==