Remove Validator\TypeTestCase and add validator logic to base TypeTestCase
This commit is contained in:
parent
ec8edeeb29
commit
5ab50103ae
@ -0,0 +1,40 @@
|
||||
<?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\Form\Test\Traits;
|
||||
|
||||
use Symfony\Component\Form\Extension\Validator\ValidatorExtension;
|
||||
use Symfony\Component\Form\Test\TypeTestCase;
|
||||
use Symfony\Component\Validator\Mapping\ClassMetadata;
|
||||
use Symfony\Component\Validator\Validator\ValidatorInterface;
|
||||
|
||||
trait ValidatorExtensionTrait
|
||||
{
|
||||
protected $validator;
|
||||
|
||||
protected function getValidatorExtension()
|
||||
{
|
||||
if (!interface_exists(ValidatorInterface::class)) {
|
||||
throw new \Exception('In order to use the "ValidatorExtensionTrait", the symfony/validator component must be installed');
|
||||
}
|
||||
|
||||
if (!$this instanceof TypeTestCase) {
|
||||
throw new \Exception(sprintf('The trait "ValidatorExtensionTrait" can only be added to a class that extends %s', TypeTestCase::class));
|
||||
}
|
||||
|
||||
$this->validator = $this->getMockBuilder(ValidatorInterface::class)->getMock();
|
||||
$metadata = $this->getMockBuilder(ClassMetadata::class)->disableOriginalConstructor()->getMock();
|
||||
$this->validator->expects($this->any())->method('getMetadataFor')->will($this->returnValue($metadata));
|
||||
$this->validator->expects($this->any())->method('validate')->will($this->returnValue(array()));
|
||||
|
||||
return new ValidatorExtension($this->validator);
|
||||
}
|
||||
}
|
@ -13,6 +13,7 @@ namespace Symfony\Component\Form\Test;
|
||||
|
||||
use Symfony\Component\Form\FormBuilder;
|
||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||
use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
|
||||
|
||||
abstract class TypeTestCase extends FormIntegrationTestCase
|
||||
{
|
||||
@ -34,6 +35,24 @@ abstract class TypeTestCase extends FormIntegrationTestCase
|
||||
$this->builder = new FormBuilder(null, null, $this->dispatcher, $this->factory);
|
||||
}
|
||||
|
||||
protected function tearDown()
|
||||
{
|
||||
if (in_array(ValidatorExtensionTrait::class, class_uses($this))) {
|
||||
$this->validator = null;
|
||||
}
|
||||
}
|
||||
|
||||
protected function getExtensions()
|
||||
{
|
||||
$extensions = array();
|
||||
|
||||
if (in_array(ValidatorExtensionTrait::class, class_uses($this))) {
|
||||
$extensions[] = $this->getValidatorExtension();
|
||||
}
|
||||
|
||||
return $extensions;
|
||||
}
|
||||
|
||||
public static function assertDateTimeEquals(\DateTime $expected, \DateTime $actual)
|
||||
{
|
||||
self::assertEquals($expected->format('c'), $actual->format('c'));
|
||||
|
@ -12,6 +12,7 @@
|
||||
namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
|
||||
|
||||
use Symfony\Component\Form\Test\FormInterface;
|
||||
use Symfony\Component\Form\Test\TypeTestCase;
|
||||
use Symfony\Component\Validator\Constraints\GroupSequence;
|
||||
|
||||
/**
|
||||
|
@ -12,11 +12,14 @@
|
||||
namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
|
||||
|
||||
use Symfony\Component\Form\Extension\Validator\Type\FormTypeValidatorExtension;
|
||||
use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
|
||||
use Symfony\Component\Validator\Constraints\Valid;
|
||||
use Symfony\Component\Validator\ConstraintViolationList;
|
||||
|
||||
class FormTypeValidatorExtensionTest extends BaseValidatorExtensionTest
|
||||
{
|
||||
use ValidatorExtensionTrait;
|
||||
|
||||
public function testSubmitValidatesData()
|
||||
{
|
||||
$builder = $this->factory->createBuilder(
|
||||
|
@ -11,8 +11,12 @@
|
||||
|
||||
namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
|
||||
|
||||
use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
|
||||
|
||||
class SubmitTypeValidatorExtensionTest extends BaseValidatorExtensionTest
|
||||
{
|
||||
use ValidatorExtensionTrait;
|
||||
|
||||
protected function createForm(array $options = array())
|
||||
{
|
||||
return $this->factory->create('Symfony\Component\Form\Extension\Core\Type\SubmitType', null, $options);
|
||||
|
@ -1,44 +0,0 @@
|
||||
<?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\Form\Tests\Extension\Validator\Type;
|
||||
|
||||
use Symfony\Component\Form\Test\TypeTestCase as BaseTypeTestCase;
|
||||
use Symfony\Component\Form\Extension\Validator\ValidatorExtension;
|
||||
|
||||
abstract class TypeTestCase extends BaseTypeTestCase
|
||||
{
|
||||
protected $validator;
|
||||
|
||||
protected function setUp()
|
||||
{
|
||||
$this->validator = $this->getMockBuilder('Symfony\Component\Validator\Validator\ValidatorInterface')->getMock();
|
||||
$metadata = $this->getMockBuilder('Symfony\Component\Validator\Mapping\ClassMetadata')->disableOriginalConstructor()->getMock();
|
||||
$this->validator->expects($this->once())->method('getMetadataFor')->will($this->returnValue($metadata));
|
||||
$this->validator->expects($this->any())->method('validate')->will($this->returnValue(array()));
|
||||
|
||||
parent::setUp();
|
||||
}
|
||||
|
||||
protected function tearDown()
|
||||
{
|
||||
$this->validator = null;
|
||||
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
protected function getExtensions()
|
||||
{
|
||||
return array_merge(parent::getExtensions(), array(
|
||||
new ValidatorExtension($this->validator),
|
||||
));
|
||||
}
|
||||
}
|
@ -12,6 +12,7 @@
|
||||
namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
|
||||
|
||||
use Symfony\Component\Form\Extension\Validator\Type\UploadValidatorExtension;
|
||||
use Symfony\Component\Form\Test\TypeTestCase;
|
||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||
use Symfony\Component\OptionsResolver\Options;
|
||||
|
||||
|
Reference in New Issue
Block a user