Viewing file: AbstractComparisonValidatorTestCase.php (3.46 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */
namespace Symfony\Component\Validator\Tests\Constraints;
use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\Constraints\AbstractComparisonValidator;
class ComparisonTest_Class { protected $value;
public function __construct($value) { $this->value = $value; }
public function __toString() { return (string) $this->value; } }
/** * @author Daniel Holmes <daniel@danielholmes.org> */ abstract class AbstractComparisonValidatorTestCase extends \PHPUnit_Framework_TestCase { private $validator; private $context;
protected function setUp() { $this->validator = $this->createValidator(); $this->context = $this->getMockBuilder('Symfony\Component\Validator\ExecutionContext') ->disableOriginalConstructor() ->getMock(); $this->validator->initialize($this->context); }
/** * @return AbstractComparisonValidator */ abstract protected function createValidator();
public function testThrowsConstraintExceptionIfNoValueOrProperty() { $this->setExpectedException('Symfony\Component\Validator\Exception\ConstraintDefinitionException');
$comparison = $this->createConstraint(array()); $this->validator->validate('some value', $comparison); }
/** * @dataProvider provideValidComparisons * @param mixed $dirtyValue * @param mixed $comparisonValue */ public function testValidComparisonToValue($dirtyValue, $comparisonValue) { $this->context->expects($this->never()) ->method('addViolation');
$constraint = $this->createConstraint(array('value' => $comparisonValue));
$this->context->expects($this->any()) ->method('getPropertyPath') ->will($this->returnValue('property1'));
$this->validator->validate($dirtyValue, $constraint); }
/** * @return array */ abstract public function provideValidComparisons();
/** * @dataProvider provideInvalidComparisons * @param mixed $dirtyValue * @param mixed $comparedValue * @param mixed $comparedValueString * @param string $comparedValueType */ public function testInvalidComparisonToValue($dirtyValue, $comparedValue, $comparedValueString, $comparedValueType) { $constraint = $this->createConstraint(array('value' => $comparedValue)); $constraint->message = 'Constraint Message';
$this->context->expects($this->any()) ->method('getPropertyPath') ->will($this->returnValue('property1'));
$this->context->expects($this->once()) ->method('addViolation') ->with('Constraint Message', array( '{{ value }}' => $comparedValueString, '{{ compared_value }}' => $comparedValueString, '{{ compared_value_type }}' => $comparedValueType ));
$this->validator->validate($dirtyValue, $constraint); }
/** * @return array */ abstract public function provideInvalidComparisons();
/** * @param array $options Options for the constraint * @return Constraint */ abstract protected function createConstraint(array $options); }
|