Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 1
DifferentContactsConstraintValidator
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
42
0.00% covered (danger)
0.00%
0 / 1
 validate
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
42
1<?php
2
3namespace Drupal\crm\Plugin\Validation\Constraint;
4
5use Symfony\Component\Validator\Constraint;
6use Symfony\Component\Validator\ConstraintValidator;
7
8/**
9 * Validates that Contact A and Contact B are different.
10 */
11class DifferentContactsConstraintValidator extends ConstraintValidator {
12
13  /**
14   * Validates the entity.
15   *
16   * @param \Drupal\Core\Entity\EntityInterface $entity
17   *   The entity being validated.
18   * @param \Drupal\crm\Plugin\Validation\Constraint\DifferentContactsConstraint $constraint
19   *   The constraint to validate against.
20   */
21  public function validate($entity, Constraint $constraint) {
22    $contact_a = $entity->get('contact_a')->first() ? $entity->get('contact_a')->first()->target_id : NULL;
23    $contact_b = $entity->get('contact_b')->first() ? $entity->get('contact_b')->first()->target_id : NULL;
24
25    if ($contact_a && $contact_b && $contact_a === $contact_b) {
26      $this->context->addViolation($constraint->message);
27    }
28  }
29
30}