protected function assertViolations(array $expected) { $violations = $this->context->getViolations(); $this->assertCount(count($expected), $violations); $i = 0; foreach ($expected as $violation) { $this->assertEquals($violation, $violations[$i++]); } }
/** * If the user select "Yes, I have a password", we check the password. */ public function verifyAccount($value, ExecutionContextInterface $context) { if ($value == 1) { $data = $context->getRoot()->getData(); if (false === $data['password'] || empty($data['password']) && '0' != $data['password']) { $context->getViolations()->add(new ConstraintViolation(Translator::getInstance()->trans('This value should not be blank.'), 'account_password', array(), $context->getRoot(), 'children[password].data', 'propertyPath')); } } }
/** * @param array $expected * * @deprecated To be removed in Symfony 3.0. Use * {@link buildViolation()} instead. */ protected function assertViolations(array $expected) { @trigger_error('The ' . __METHOD__ . ' method is deprecated since version 2.3 and will be removed in 3.0. Use the buildViolation() method instead.', E_USER_DEPRECATED); $violations = $this->context->getViolations(); $this->assertCount(count($expected), $violations); $i = 0; foreach ($expected as $violation) { $this->assertEquals($violation, $violations[$i++]); } }
/** * Sequentially validates a node's value in each group of a group sequence. * * If any of the constraints generates a violation, subsequent groups in the * group sequence are skipped. * * @param mixed $value The validated value * @param object|null $object The current object * @param string $cacheKey The key for caching * the validated value * @param MetadataInterface $metadata The metadata of the * value * @param string $propertyPath The property path leading * to the value * @param int $traversalStrategy The strategy used for * traversing the value * @param GroupSequence $groupSequence The group sequence * @param string[]|null $cascadedGroup The group that should * be passed to cascaded * objects instead of * the group sequence * @param ExecutionContextInterface $context The execution context */ private function stepThroughGroupSequence($value, $object, $cacheKey, MetadataInterface $metadata = null, $propertyPath, $traversalStrategy, GroupSequence $groupSequence, $cascadedGroup, ExecutionContextInterface $context) { $violationCount = count($context->getViolations()); $cascadedGroups = $cascadedGroup ? array($cascadedGroup) : null; foreach ($groupSequence->groups as $groupInSequence) { $groups = array($groupInSequence); if ($metadata instanceof ClassMetadataInterface) { $this->validateClassNode($value, $cacheKey, $metadata, $propertyPath, $groups, $cascadedGroups, $traversalStrategy, $context); } else { $this->validateGenericNode($value, $object, $cacheKey, $metadata, $propertyPath, $groups, $cascadedGroups, $traversalStrategy, $context); } // Abort sequence validation if a violation was generated if (count($context->getViolations()) > $violationCount) { break; } } }
/** * {@inheritdoc} */ public function getViolations() { return $this->context->getViolations(); }
public function assertRaised() { $expected = array(); foreach ($this->assertions as $assertion) { $expected[] = $assertion->getViolation(); } $expected[] = $this->getViolation(); $violations = iterator_to_array($this->context->getViolations()); \PHPUnit_Framework_Assert::assertSame($expectedCount = count($expected), $violationsCount = count($violations), sprintf('%u violation(s) expected. Got %u.', $expectedCount, $violationsCount)); reset($violations); foreach ($expected as $violation) { \PHPUnit_Framework_Assert::assertEquals($violation, current($violations)); next($violations); } }