示例#1
0
文件: ModelTest.php 项目: seytar/psx
    public function testSerialize()
    {
        $model = new Model('Order', 'Order object');
        $model->addProperty(new Property('id', 'integer'));
        $model->addProperty(new Property('type', 'string'));
        $model->addProperty(new PropertyReference('customer', 'Customer'));
        $model->addProperty(new Property('petId', 'integer'));
        $model->addProperty(new Property('shipDate', 'string'));
        $model->setRequired(array('type', 'customer', 'petId'));
        $model->setSubTypes(array('PetOrder', 'FooOrder'));
        $model->setDiscriminator('type');
        $content = <<<'JSON'
{
  "id": "Order",
  "description": "Order object",
  "required": ["type", "customer", "petId"],
  "discriminator": "type",
  "subTypes": ["PetOrder", "FooOrder"],
  "properties": {
    "id": {
      "id": "id",
      "type": "integer"
    },
    "type": {
      "id": "type",
      "type": "string"
    },
    "customer": {
      "id": "customer",
      "$ref": "Customer"
    },
    "petId": {
      "id": "petId",
      "type": "integer"
    },
    "shipDate": {
      "id": "shipDate",
      "type": "string"
    }
  }
}
JSON;
        $this->assertRecordEqualsContent($model, $content);
    }
示例#2
0
    public function testSerialize()
    {
        $operation = new Operation('PUT', 'updatePet', 'Update an existing pet');
        $api = new Api('/foo', 'Foobar');
        $api->addOperation($operation);
        $model = new Model('Order', 'Order object');
        $model->addProperty(new Property('id', 'integer'));
        $model->addProperty(new PropertyReference('customer', 'Customer'));
        $model->addProperty(new Property('petId', 'integer'));
        $model->addProperty(new Property('quantity', 'integer'));
        $model->addProperty(new Property('status', 'string'));
        $model->addProperty(new Property('shipDate', 'string'));
        $declaration = new Declaration('1.0.0', 'http://petstore.swagger.wordnik.com/api', '/store');
        $declaration->addApi($api);
        $declaration->addModel($model);
        $content = <<<'JSON'
{
  "apiVersion": "1.0.0",
  "swaggerVersion": "1.2",
  "basePath": "http://petstore.swagger.wordnik.com/api",
  "resourcePath": "/store",
  "apis": [{
    "path": "/foo",
    "description": "Foobar",
    "operations": [{
      "method": "PUT",
      "nickname": "updatePet",
      "summary": "Update an existing pet",
      "parameters": [],
      "responseMessages": []
    }]
  }],
  "models": {
    "Order": {
      "id": "Order",
      "description": "Order object",
      "properties": {
        "id": {
          "id": "id",
          "type": "integer"
        },
        "customer": {
          "id": "customer",
          "$ref": "Customer"
        },
        "petId": {
          "id": "petId",
          "type": "integer"
        },
        "quantity": {
          "id": "quantity",
          "type": "integer"
        },
        "status": {
          "id": "status",
          "type": "string"
        },
        "shipDate": {
          "id": "shipDate",
          "type": "string"
        }
      }
    }
  }
}
JSON;
        $this->assertRecordEqualsContent($declaration, $content);
    }