Commit 4d8956f3 authored by alexkappa's avatar alexkappa

Added custom constraint and validator to properly test the ConstraintValidatorFactory.

parent b45b4fb2
...@@ -15,6 +15,8 @@ use Silex\Application; ...@@ -15,6 +15,8 @@ use Silex\Application;
use Silex\Provider\ValidatorServiceProvider; use Silex\Provider\ValidatorServiceProvider;
use Silex\Provider\FormServiceProvider; use Silex\Provider\FormServiceProvider;
use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\Validator\Constraints as Assert;
use Silex\Tests\Provider\ValidatorServiceProviderTest\Constraint\Custom;
use Silex\Tests\Provider\ValidatorServiceProviderTest\Constraint\CustomValidator;
/** /**
* ValidatorServiceProvider * ValidatorServiceProvider
...@@ -43,14 +45,13 @@ class ValidatorServiceProviderTest extends \PHPUnit_Framework_TestCase ...@@ -43,14 +45,13 @@ class ValidatorServiceProviderTest extends \PHPUnit_Framework_TestCase
{ {
$app = new Application(); $app = new Application();
// Dummy ConstraintValidators $app['custom.validator'] = $app->share(function() {
$app['validator.x'] = 'x'; return new CustomValidator();
$app['validator.y'] = 'y'; });
$app->register(new ValidatorServiceProvider(), array( $app->register(new ValidatorServiceProvider(), array(
'validator.validator_service_ids' => array( 'validator.validator_service_ids' => array(
'alias_x' => 'validator.x', 'test.custom.validator' => 'custom.validator',
'alias_y' => 'validator.y'
) )
)); ));
...@@ -63,6 +64,9 @@ class ValidatorServiceProviderTest extends \PHPUnit_Framework_TestCase ...@@ -63,6 +64,9 @@ class ValidatorServiceProviderTest extends \PHPUnit_Framework_TestCase
public function testConstraintValidatorFactory($app) public function testConstraintValidatorFactory($app)
{ {
$this->assertInstanceOf('Silex\ConstraintValidatorFactory', $app['validator.validator_factory']); $this->assertInstanceOf('Silex\ConstraintValidatorFactory', $app['validator.validator_factory']);
$validator = $app['validator.validator_factory']->getInstance(new Custom());
$this->assertInstanceOf('Silex\Tests\Provider\ValidatorServiceProviderTest\Constraint\CustomValidator', $validator);
} }
/** /**
......
<?php
/*
* This file is part of the Silex framework.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace Silex\Tests\Provider\ValidatorServiceProviderTest\Constraint;
use Symfony\Component\Validator\Constraint;
/**
* @author Alex Kalyvitis <alex.kalyvitis@gmail.com>
*/
class Custom extends Constraint
{
public $message = 'This field must be ...';
public $table;
public $field;
public function validatedBy()
{
return 'test.custom.validator';
}
}
<?php
/*
* This file is part of the Silex framework.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace Silex\Tests\Provider\ValidatorServiceProviderTest\Constraint;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
/**
* @author Alex Kalyvitis <alex.kalyvitis@gmail.com>
*/
class CustomValidator extends ConstraintValidator
{
public function isValid($value, Constraint $constraint)
{
// Validate...
return true;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment