Esempio n. 1
0
    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);
    }