public function testHowWellItWorks() { $result = new ValidationResult(); $this->assertFalse($result->hasErrors()); $result->addFieldError('firstname', 'It is too short'); $this->assertTrue($result->hasErrors()); $arrayResult = $result->toArray(); $this->assertTrue(is_array($arrayResult)); $this->assertArrayHasKey('field_errors', $arrayResult); $this->assertFalse(isset($arrayResult['general_errors'])); $this->assertTrue(is_array($arrayResult['field_errors'])); $this->assertEquals(1, count($arrayResult['field_errors'])); $this->assertArrayHasKey('firstname', $arrayResult['field_errors']); $this->assertTrue(is_array($arrayResult['field_errors']['firstname'])); $this->assertArrayHasKey(0, $arrayResult['field_errors']['firstname']); $this->assertEquals('It is too short', $arrayResult['field_errors']['firstname'][0]); $firstnameErrors = $result->getFieldErrors('firstname'); $this->assertTrue(is_array($firstnameErrors)); $this->assertEquals(1, count($firstnameErrors)); $this->assertEquals('It is too short', $firstnameErrors[0]); $result->addGeneralError('foo error'); $this->assertTrue(in_array('foo error', $result->getGeneralErrors())); $arrayResult = $result->toArray(); $this->assertEquals(1, count($arrayResult['general_errors'])); $this->assertTrue(in_array('foo error', $arrayResult['general_errors'])); }
/** * {@inheritdoc} */ public function validate($entity, array $config) { $validationResult = new ValidationResult(); if (false === $config['ignore_standard_validator']) { foreach ($this->validator->validate($entity) as $violation) { /* @var ConstraintViolationInterface $violation */ $validationResult->addFieldError($violation->getPropertyPath(), $violation->getMessageTemplate()); } } if (false !== $config['entity_validation_method'] && in_array($config['entity_validation_method'], get_class_methods($entity))) { $methodName = $config['entity_validation_method']; $entity->{$methodName}($validationResult, $this->container); } return $validationResult; }
public function testValidateBoth() { $entity = new DummyEntityToValidationWithMethod(); $config = array('entity_validation_method' => 'validateIt', 'ignore_standard_validator' => false); $result = $this->validator->validate($entity, $config); $this->assertInstanceOf(ValidationResult::clazz(), $result); $this->assertTrue($result->hasErrors()); $this->assertTrue(in_array('an error', $result->getGeneralErrors())); $this->assertInstanceOf(ValidationResult::clazz(), $entity->givenValidationResult); $this->assertInstanceOf('Symfony\\Component\\DependencyInjection\\ContainerInterface', $entity->givenContainer); $this->assertEquals(1, count($result->getFieldErrors('id'))); }