/**
  * @param AutoResponseRuleCondition|null $value
  * @param Constraint $constraint
  */
 public function validate($value, Constraint $constraint)
 {
     if (!$value) {
         return;
     }
     if ($this->filterValueShouldBeEmpty($value->getFilterType())) {
         if ($value->getFilterValue()) {
             $this->context->addViolation($constraint->nonEmptyInputMessage);
         }
     } elseif (!$value->getFilterValue()) {
         $this->context->addViolation($constraint->emptyInputMessage);
     }
 }
 /**
  * @param string $filterType
  * @param string $filterValue
  *
  * @return AutoResponseRuleCondition
  */
 protected function createCondition($filterType, $filterValue)
 {
     $condition = new AutoResponseRuleCondition();
     return $condition->setFilterType($filterType)->setFilterValue($filterValue);
 }
 protected function getAutoResponseRule()
 {
     $subjectCondition = new AutoResponseRuleCondition();
     $subjectCondition->setField('subject')->setFilterType(FilterUtility::TYPE_EMPTY);
     $offerCondition = new AutoResponseRuleCondition();
     $offerCondition->setField('emailBody.bodyContent')->setFilterType(TextFilterType::TYPE_CONTAINS)->setFilterValue('offer');
     $saleCondition = new AutoResponseRuleCondition();
     $saleCondition->setField('emailBody.bodyContent')->setFilterType(TextFilterType::TYPE_CONTAINS)->setFilterValue('sale');
     $wonCondition = new AutoResponseRuleCondition();
     $wonCondition->setField('emailBody.bodyContent')->setFilterType(TextFilterType::TYPE_CONTAINS)->setFilterValue('won');
     $autoResponseRule = new AutoResponseRule();
     $autoResponseRule->addConditions([$subjectCondition, $offerCondition, $saleCondition, $wonCondition]);
     $createdAt = new \DateTime('now', new \DateTimeZone('UTC'));
     $createdAt->sub(\DateInterval::createFromDateString('1 day'));
     $autoResponseRule->setCreatedAt($createdAt);
     return $autoResponseRule;
 }