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\Form\FormBuilder;
|
||||||
use Symfony\Component\EventDispatcher\EventDispatcher;
|
use Symfony\Component\EventDispatcher\EventDispatcher;
|
||||||
|
use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
|
||||||
|
|
||||||
abstract class TypeTestCase extends FormIntegrationTestCase
|
abstract class TypeTestCase extends FormIntegrationTestCase
|
||||||
{
|
{
|
||||||
@ -34,6 +35,24 @@ abstract class TypeTestCase extends FormIntegrationTestCase
|
|||||||
$this->builder = new FormBuilder(null, null, $this->dispatcher, $this->factory);
|
$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)
|
public static function assertDateTimeEquals(\DateTime $expected, \DateTime $actual)
|
||||||
{
|
{
|
||||||
self::assertEquals($expected->format('c'), $actual->format('c'));
|
self::assertEquals($expected->format('c'), $actual->format('c'));
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
|
namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
|
||||||
|
|
||||||
use Symfony\Component\Form\Test\FormInterface;
|
use Symfony\Component\Form\Test\FormInterface;
|
||||||
|
use Symfony\Component\Form\Test\TypeTestCase;
|
||||||
use Symfony\Component\Validator\Constraints\GroupSequence;
|
use Symfony\Component\Validator\Constraints\GroupSequence;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -12,11 +12,14 @@
|
|||||||
namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
|
namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
|
||||||
|
|
||||||
use Symfony\Component\Form\Extension\Validator\Type\FormTypeValidatorExtension;
|
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\Constraints\Valid;
|
||||||
use Symfony\Component\Validator\ConstraintViolationList;
|
use Symfony\Component\Validator\ConstraintViolationList;
|
||||||
|
|
||||||
class FormTypeValidatorExtensionTest extends BaseValidatorExtensionTest
|
class FormTypeValidatorExtensionTest extends BaseValidatorExtensionTest
|
||||||
{
|
{
|
||||||
|
use ValidatorExtensionTrait;
|
||||||
|
|
||||||
public function testSubmitValidatesData()
|
public function testSubmitValidatesData()
|
||||||
{
|
{
|
||||||
$builder = $this->factory->createBuilder(
|
$builder = $this->factory->createBuilder(
|
||||||
|
@ -11,8 +11,12 @@
|
|||||||
|
|
||||||
namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
|
namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
|
||||||
|
|
||||||
|
use Symfony\Component\Form\Test\Traits\ValidatorExtensionTrait;
|
||||||
|
|
||||||
class SubmitTypeValidatorExtensionTest extends BaseValidatorExtensionTest
|
class SubmitTypeValidatorExtensionTest extends BaseValidatorExtensionTest
|
||||||
{
|
{
|
||||||
|
use ValidatorExtensionTrait;
|
||||||
|
|
||||||
protected function createForm(array $options = array())
|
protected function createForm(array $options = array())
|
||||||
{
|
{
|
||||||
return $this->factory->create('Symfony\Component\Form\Extension\Core\Type\SubmitType', null, $options);
|
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;
|
namespace Symfony\Component\Form\Tests\Extension\Validator\Type;
|
||||||
|
|
||||||
use Symfony\Component\Form\Extension\Validator\Type\UploadValidatorExtension;
|
use Symfony\Component\Form\Extension\Validator\Type\UploadValidatorExtension;
|
||||||
|
use Symfony\Component\Form\Test\TypeTestCase;
|
||||||
use Symfony\Component\OptionsResolver\OptionsResolver;
|
use Symfony\Component\OptionsResolver\OptionsResolver;
|
||||||
use Symfony\Component\OptionsResolver\Options;
|
use Symfony\Component\OptionsResolver\Options;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user