[Validator] Refactor tests

This commit is contained in:
Jáchym Toušek 2016-09-19 21:10:04 +02:00
parent 38b643a9f0
commit 3847badd47

View File

@ -1157,9 +1157,11 @@ abstract class AbstractValidatorTest extends \PHPUnit_Framework_TestCase
$this->assertSame('Violation in other group', $violations[0]->getMessage()); $this->assertSame('Violation in other group', $violations[0]->getMessage());
} }
public function testReplaceDefaultGroupWithObjectFromGroupSequenceProvider() /**
* @dataProvider getTestReplaceDefaultGroup
*/
public function testReplaceDefaultGroup($sequence, array $assertViolations)
{ {
$sequence = new GroupSequence(array('Group 1', 'Group 2', 'Group 3', 'Entity'));
$entity = new GroupSequenceProviderEntity($sequence); $entity = new GroupSequenceProviderEntity($sequence);
$callback1 = function ($value, ExecutionContextInterface $context) { $callback1 = function ($value, ExecutionContextInterface $context) {
@ -1189,43 +1191,27 @@ abstract class AbstractValidatorTest extends \PHPUnit_Framework_TestCase
$violations = $this->validate($entity, null, 'Default'); $violations = $this->validate($entity, null, 'Default');
/* @var ConstraintViolationInterface[] $violations */ /* @var ConstraintViolationInterface[] $violations */
$this->assertCount(1, $violations); $this->assertCount(count($assertViolations), $violations);
$this->assertSame('Violation in Group 2', $violations[0]->getMessage()); foreach ($assertViolations as $key => $message) {
$this->assertSame($message, $violations[$key]->getMessage());
}
} }
public function testReplaceDefaultGroupWithArrayFromGroupSequenceProvider() public function getTestReplaceDefaultGroup()
{ {
$sequence = array('Group 1', 'Group 2', 'Group 3', 'Entity'); return array(
$entity = new GroupSequenceProviderEntity($sequence); array(
'sequence' => new GroupSequence(array('Group 1', 'Group 2', 'Group 3', 'Entity')),
$callback1 = function ($value, ExecutionContextInterface $context) { 'assertViolations' => array(
$context->addViolation('Violation in Group 2'); 'Violation in Group 2',
}; ),
$callback2 = function ($value, ExecutionContextInterface $context) { ),
$context->addViolation('Violation in Group 3'); array(
}; 'sequence' => array('Group 1', 'Group 2', 'Group 3', 'Entity'),
'assertViolations' => array(
$metadata = new ClassMetadata(get_class($entity)); 'Violation in Group 2',
$metadata->addConstraint(new Callback(array( ),
'callback' => function () {}, ),
'groups' => 'Group 1', );
)));
$metadata->addConstraint(new Callback(array(
'callback' => $callback1,
'groups' => 'Group 2',
)));
$metadata->addConstraint(new Callback(array(
'callback' => $callback2,
'groups' => 'Group 3',
)));
$metadata->setGroupSequenceProvider(true);
$this->metadataFactory->addMetadata($metadata);
$violations = $this->validate($entity, null, 'Default');
/* @var ConstraintViolationInterface[] $violations */
$this->assertCount(1, $violations);
$this->assertSame('Violation in Group 2', $violations[0]->getMessage());
} }
} }