diff --git a/Parser/ValidationParser.php b/Parser/ValidationParser.php index 1f26db4..d5d5ad5 100644 --- a/Parser/ValidationParser.php +++ b/Parser/ValidationParser.php @@ -140,6 +140,15 @@ class ValidationParser implements ParserInterface, PostParserInterface case 'Ip': $vparams['format'][] = '{ip address}'; break; + case 'Date': + $vparams['format'][] = '{Date YYYY-MM-DD}'; + break; + case 'DateTime': + $vparams['format'][] = '{DateTime YYYY-MM-DD HH:MM:SS}'; + break; + case 'Time': + $vparams['format'][] = '{Time HH:MM:SS}'; + break; case 'Length': $messages = array(); if (isset($constraint->min)) { diff --git a/Tests/Fixtures/Model/ValidatorTest.php b/Tests/Fixtures/Model/ValidatorTest.php index 46ad6b9..fbef225 100644 --- a/Tests/Fixtures/Model/ValidatorTest.php +++ b/Tests/Fixtures/Model/ValidatorTest.php @@ -40,6 +40,21 @@ class ValidatorTest */ public $type; + /** + * @Assert\Date(); + */ + public $date; + + /** + * @Assert\DateTime(); + */ + public $dateTime; + + /** + * @Assert\Time(); + */ + public $time; + /** * @Assert\Email() */ diff --git a/Tests/Parser/ValidationParserTest.php b/Tests/Parser/ValidationParserTest.php index 7e4d910..6532f29 100644 --- a/Tests/Parser/ValidationParserTest.php +++ b/Tests/Parser/ValidationParserTest.php @@ -24,7 +24,9 @@ class ValidationParserTest extends WebTestCase $result = $this->parser->parse(array('class' => 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\ValidatorTest')); foreach ($expected as $name => $value) { - $this->assertEquals($value, $expected[$name]); + $this->assertArrayHasKey($property, $result); + $this->assertArrayHasKey($name, $result[$property]); + $this->assertEquals($result[$property][$name], $expected[$name]); } } @@ -61,6 +63,24 @@ class ValidationParserTest extends WebTestCase 'dataType' => 'DateTime' ) ), + array( + 'property' => 'date', + 'expected' => array( + 'format' => '{Date YYYY-MM-DD}' + ) + ), + array( + 'property' => 'dateTime', + 'expected' => array( + 'format' => '{DateTime YYYY-MM-DD HH:MM:SS}' + ) + ), + array( + 'property' => 'time', + 'expected' => array( + 'format' => '{Time HH:MM:SS}' + ) + ), array( 'property' => 'email', 'expected' => array(