mirror of
https://github.com/yiisoft/yii.git
synced 2026-03-03 14:54:04 +01:00
92 lines
2.3 KiB
PHP
92 lines
2.3 KiB
PHP
<?php
|
|
|
|
require_once 'ModelMock.php';
|
|
|
|
/**
|
|
* CDateValidatorTest
|
|
*
|
|
* @author Kevin Bradwick <kbradwick@gmail.com>
|
|
*/
|
|
class CDateValidatorTest extends CTestCase
|
|
{
|
|
/**
|
|
* Test allow empty
|
|
*
|
|
* @return null
|
|
*/
|
|
public function testAllowEmptyOption()
|
|
{
|
|
$model = $this->getModelMock(array('allowEmpty' => true));
|
|
$this->assertTrue($model->validate());
|
|
|
|
$model = $this->getModelMock(array('allowEmpty' => false));
|
|
$this->assertFalse($model->validate());
|
|
$this->assertTrue($model->hasErrors('foo'));
|
|
}
|
|
|
|
/**
|
|
* Test can validate different formats
|
|
*
|
|
* @return null
|
|
*/
|
|
public function testFormatOption()
|
|
{
|
|
// default format
|
|
$model = $this->getModelMock();
|
|
$model->foo = '01/01/2011';
|
|
$this->assertTrue($model->validate());
|
|
$model->foo = '42/01/2011';
|
|
$this->assertFalse($model->validate());
|
|
|
|
// custom format
|
|
$model = $this->getModelMock(array('format' => 'dd-MM-yyyy'));
|
|
$model->foo = '01-01-2011';
|
|
$this->assertTrue($model->validate());
|
|
$model->foo = '01-24-2011';
|
|
$this->assertFalse($model->validate());
|
|
|
|
// array value, https://github.com/yiisoft/yii/issues/1955
|
|
$model->foo = array('01-01-2011');
|
|
$this->assertFalse($model->validate());
|
|
}
|
|
|
|
/**
|
|
* Test the timestamp option
|
|
*
|
|
* @return null
|
|
*/
|
|
public function testTimestampOption()
|
|
{
|
|
$model = $this->getModelMock(array('timestampAttribute' => 'bar'));
|
|
$model->foo = '01/01/2011';
|
|
$this->assertTrue($model->validate());
|
|
$this->assertInternalType('integer', $model->bar);
|
|
$this->assertEquals(strtotime('1 Jan 2011'), $model->bar);
|
|
}
|
|
|
|
/**
|
|
* Mocks up an object to test with
|
|
*
|
|
* @param array $operator optional parameters to configure rule
|
|
*
|
|
* @return null
|
|
*/
|
|
protected function getModelMock($params=array())
|
|
{
|
|
$rules = array(
|
|
array('foo', 'date')
|
|
);
|
|
|
|
foreach ($params as $rule => $value) {
|
|
$rules[0][$rule] = $value;
|
|
}
|
|
|
|
$stub = $this->getMock('ModelMock', array('rules'));
|
|
$stub->expects($this->any())
|
|
->method('rules')
|
|
->will($this->returnValue($rules));
|
|
|
|
return $stub;
|
|
}
|
|
}
|