/**
  * @dataProvider validationDataProvider
  *
  * @param mixed  $phone
  * @param mixed  $email
  * @param string $method
  * @param int    $expectedViolationCount
  */
 public function testValidationCallback($phone, $email, $method, $expectedViolationCount)
 {
     $request = new ContactRequest();
     $request->setPhone($phone);
     $request->setEmailAddress($email);
     $request->setPreferredContactMethod($method);
     $context = $this->getMockBuilder('Symfony\\Component\\Validator\\ExecutionContext')->disableOriginalConstructor()->getMock();
     $context->expects($this->exactly($expectedViolationCount))->method('addViolationAt');
     ContactRequestCallbackValidator::validate($request, $context);
 }
 /**
  * {@inheritDoc}
  */
 public function load(ObjectManager $manager)
 {
     $this->em = $manager;
     $organization = $manager->getRepository('OroOrganizationBundle:Organization')->getFirst();
     $this->createChannel();
     $contactUsRequest = new ContactRequest();
     $contactUsRequest->setFirstName('fname');
     $contactUsRequest->setLastName('lname');
     $contactUsRequest->setPhone('123123123');
     $contactUsRequest->setEmailAddress('*****@*****.**');
     $contactUsRequest->setComment('some comment');
     $contactUsRequest->setDataChannel($this->getReference('default_channel'));
     $contactUsRequest->setOwner($organization);
     $this->em->persist($contactUsRequest);
     $this->em->flush();
     $this->setReference('default_contact_us_request', $contactUsRequest);
 }
示例#3
0
 /**
  * @param ObjectManager $om
  */
 protected function persistDemoContactUsForm(ObjectManager $om)
 {
     foreach ($this->contactRequests as $contactRequest) {
         $request = new ContactRequest();
         $contactRequest['contactReason'] = $om->getRepository('OroCRMContactUsBundle:ContactReason')->findOneBy(array('label' => $contactRequest['contactReason']));
         foreach ($contactRequest as $property => $value) {
             call_user_func_array(array($request, 'set' . ucfirst($property)), array($value));
         }
         $request->setPreferredContactMethod(ContactRequest::CONTACT_METHOD_BOTH);
         $request->setCreatedAt(new \DateTime('now', new \DateTimeZone('UTC')));
         $request->setOwner($this->organization);
         $request->setDataChannel($this->dataChannel);
         $om->persist($request);
     }
 }
 /**
  * Validates contact method
  *
  * @param ContactRequest   $object
  * @param ExecutionContext $context
  */
 public static function validate(ContactRequest $object, ExecutionContext $context)
 {
     $emailError = $phoneError = false;
     switch ($object->getPreferredContactMethod()) {
         case ContactRequest::CONTACT_METHOD_PHONE:
             $phoneError = !$object->getPhone();
             break;
         case ContactRequest::CONTACT_METHOD_EMAIL:
             $emailError = !$object->getEmailAddress();
             break;
         case ContactRequest::CONTACT_METHOD_BOTH:
         default:
             $phoneError = !$object->getPhone();
             $emailError = !$object->getEmailAddress();
     }
     if ($emailError) {
         $context->addViolationAt('emailAddress', 'This value should not be blank.');
     }
     if ($phoneError) {
         $context->addViolationAt('phone', 'This value should not be blank.');
     }
 }
示例#5
0
 public function testDoPreUpdate()
 {
     $request = new ContactRequest();
     $updatedAt = new \DateTime();
     $request->setUpdatedAt($updatedAt);
     $request->preUpdate();
     $this->assertNotNull($request->getUpdatedAt());
     $this->assertInstanceOf('DateTime', $request->getUpdatedAt());
     $this->assertNotSame($updatedAt, $request->getUpdatedAt());
 }
 public function testGetEmail()
 {
     $request = new ContactRequest();
     $this->assertNull($request->getEmail());
     $request->setEmailAddress('*****@*****.**');
     $this->assertEquals('*****@*****.**', $request->getEmail());
 }