Файл: symfony-2.7/src/Symfony/Bundle/FrameworkBundle/Tests/Validator/ConstraintValidatorFactoryTest.php
Строк: 156
<?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 SymfonyBundleFrameworkBundleTestsValidator;
use SymfonyBundleFrameworkBundleValidatorConstraintValidatorFactory;
use SymfonyComponentDependencyInjectionContainer;
use SymfonyComponentValidatorConstraintsBlank as BlankConstraint;
class ConstraintValidatorFactoryTest extends PHPUnit_Framework_TestCase
{
public function testGetInstanceCreatesValidator()
{
$class = get_class($this->getMockForAbstractClass('Symfony\Component\Validator\ConstraintValidator'));
$constraint = $this->getMock('Symfony\Component\Validator\Constraint');
$constraint
->expects($this->once())
->method('validatedBy')
->will($this->returnValue($class));
$factory = new ConstraintValidatorFactory(new Container());
$this->assertInstanceOf($class, $factory->getInstance($constraint));
}
public function testGetInstanceReturnsExistingValidator()
{
$factory = new ConstraintValidatorFactory(new Container());
$v1 = $factory->getInstance(new BlankConstraint());
$v2 = $factory->getInstance(new BlankConstraint());
$this->assertSame($v1, $v2);
}
public function testGetInstanceReturnsService()
{
$service = 'validator_constraint_service';
$alias = 'validator_constraint_alias';
$validator = $this->getMockForAbstractClass('Symfony\Component\Validator\ConstraintValidator');
// mock ContainerBuilder b/c it implements TaggedContainerInterface
$container = $this->getMock('Symfony\Component\DependencyInjection\ContainerBuilder', array('get'));
$container
->expects($this->once())
->method('get')
->with($service)
->will($this->returnValue($validator));
$constraint = $this->getMock('Symfony\Component\Validator\Constraint');
$constraint
->expects($this->once())
->method('validatedBy')
->will($this->returnValue($alias));
$factory = new ConstraintValidatorFactory($container, array('validator_constraint_alias' => 'validator_constraint_service'));
$this->assertSame($validator, $factory->getInstance($constraint));
}
}