Merge pull request #1107 from wing328/php_fix_datetime

[PHP] Fixed deserialization for datetime object
This commit is contained in:
wing328 2015-08-23 17:11:55 +08:00
commit f662699fd0
3 changed files with 27 additions and 2 deletions

View File

@ -191,7 +191,7 @@ class ObjectSerializer
$values[] = $this->deserialize($value, $subClass);
}
$deserialized = $values;
} elseif ($class === 'DateTime') {
} elseif ($class === '\DateTime') {
$deserialized = new \DateTime($data);
} elseif (in_array($class, array('string', 'int', 'float', 'double', 'bool', 'object'))) {
settype($data, $class);

View File

@ -191,7 +191,7 @@ class ObjectSerializer
$values[] = $this->deserialize($value, $subClass);
}
$deserialized = $values;
} elseif ($class === 'DateTime') {
} elseif ($class === '\DateTime') {
$deserialized = new \DateTime($data);
} elseif (in_array($class, array('string', 'int', 'float', 'double', 'bool', 'object'))) {
settype($data, $class);

View File

@ -32,6 +32,31 @@ class OrderApiTest extends \PHPUnit_Framework_TestCase
$order->setStatus("invalid_value");
}
// test deseralization of order
public function testDeserializationOfOrder()
{
$order_json = <<<ORDER
{
"id": 10,
"petId": 20,
"quantity": 30,
"shipDate": "2015-08-22T07:13:36.613Z",
"status": "placed",
"complete": false
}
ORDER;
$serializer = new Swagger\Client\ObjectSerializer;
$order = $serializer->deserialize(json_decode($order_json), 'Swagger\Client\Model\Order');
$this->assertInstanceOf('Swagger\Client\Model\Order', $order);
$this->assertSame(10, $order->getId());
$this->assertSame(20, $order->getPetId());
$this->assertSame(30, $order->getQuantity());
$this->assertTrue(new DateTime("2015-08-22T07:13:36.613Z") == $order->getShipDate());
$this->assertSame("placed", $order->getStatus());
$this->assertSame(false, $order->getComplete());
}
}
?>