private function generateViolationListFromDataProvider($subject, $id, array $violations)
 {
     $violationList = new TestedClass($subject, $id);
     foreach ($violations as $violation) {
         $violationList->add($violation);
     }
     return $violationList;
 }
 /**
  * @{inheritdoc}
  */
 public function validate($object, Violation\ViolationList $violationList)
 {
     $errors = $this->validator->validate($object);
     foreach ($errors as $error) {
         $constraint = call_user_func_array(array($this->model, 'createFromConstraintViolation'), array($error));
         $violationList->add($constraint);
     }
     return $violationList;
 }
 /**
  * {@inheritdoc}
  */
 public function getViolationListNotFixed($model)
 {
     $modelClass = $this->getClassForModel($model);
     $modelId = $model->getId();
     $list = new ViolationList($modelClass, $modelId);
     $violations = $this->getObjectManager()->getRepository($this->violationClass)->createQueryBuilder('v')->where('v.fixed = :fixed')->andWhere('v.subjectModel = :subjectModel')->andWhere('v.subjectId = :subjectId')->setParameter('fixed', false)->setParameter('subjectModel', $modelClass)->setParameter('subjectId', $modelId)->orderBy('v.createdAt', 'DESC')->getQuery()->getResult();
     foreach ($violations as $violation) {
         $list->add($violation);
     }
     return $list;
 }
 /**
  * Return the violation only present in th current instance, or in the
  * $violationList parameters.
  *
  * @param ViolationList $violationList
  * @return ViolationList
  * @throws \LogicException
  */
 public function diff(ViolationList $violationList)
 {
     if (!$this->hasSameSubject($violationList)) {
         throw new \LogicException('You can\'t diff ValidationList who haven\'t the same subject.');
     }
     $diffViolationList = new ViolationList($this->subjectModel, $this->subjectId);
     foreach ($this as $violation) {
         if (false === $violationList->contains($violation)) {
             $diffViolationList->add($violation);
         }
     }
     foreach ($violationList as $violation) {
         if (false === $this->contains($violation)) {
             $diffViolationList->add($violation);
         }
     }
     return $diffViolationList;
 }