Ejemplo n.º 1
0
 /**
  * @dataProvider findEmailOriginDataProvider
  *
  * @param \PHPUnit_Framework_MockObject_Matcher_InvokedCount $mailModelExpects
  * @param string                                             $emailOwner
  * @param bool                                               $enableUseUserEmailOrigin
  * @param bool                                               $isOriginsNotEmpty
  * @param \PHPUnit_Framework_MockObject_MockObject           $origin
  * @param \PHPUnit_Framework_MockObject_Matcher_InvokedCount $emailOriginsTimes
  */
 public function testFindEmailOrigin($mailModelExpects, $emailOwner, $enableUseUserEmailOrigin, $isOriginsNotEmpty, \PHPUnit_Framework_MockObject_MockObject $origin, $emailOriginsTimes)
 {
     $organization = $this->getMock('Oro\\Bundle\\OrganizationBundle\\Entity\\OrganizationInterface');
     $collection = new ArrayCollection([$origin]);
     $originName = 'origin name';
     $campaignOwner = null;
     $origin->expects(self::once())->method('getOrganization')->willReturn($organization);
     if (true === $enableUseUserEmailOrigin && true === $isOriginsNotEmpty) {
         $origin->expects(self::once())->method('isActive')->willReturn($isOriginsNotEmpty);
         $origin->expects(self::once())->method('isSmtpConfigured')->willReturn($isOriginsNotEmpty);
     }
     if ('user' === $emailOwner) {
         $emailOwner = $this->getMockBuilder('Oro\\Bundle\\UserBundle\\Entity\\User')->setMethods(['getEmailOrigins', 'addEmailOrigin'])->disableOriginalConstructor()->getMock();
         $emailOwner->expects($emailOriginsTimes)->method('getEmailOrigins')->willReturn($collection);
         if (false === $enableUseUserEmailOrigin) {
             $emailOwner->expects(self::once())->method('addEmailOrigin');
         }
     } elseif ('emailBox' === $emailOwner) {
         $emailOwner = $this->getMockBuilder('Oro\\Bundle\\EmailBundle\\Entity\\Mailbox')->setMethods(['getOrigin'])->disableOriginalConstructor()->getMock();
         if (true === $isOriginsNotEmpty) {
             $emailOwner->expects($emailOriginsTimes)->method('getOrigin')->willReturn($collection);
         } else {
             $emailOwner->expects($emailOriginsTimes)->method('getOrigin')->willReturn(null);
             $campaignOwner = $this->getMockBuilder('Oro\\Bundle\\UserBundle\\Entity\\User')->setMethods(['getEmailOrigins', 'addEmailOrigin'])->disableOriginalConstructor()->getMock();
             $campaignOwner->expects(self::any())->method('getEmailOrigins')->willReturn($collection);
         }
     }
     $this->emailModel->expects($mailModelExpects)->method('getCampaignOwner')->willReturn($campaignOwner);
     $this->emailOriginHelper->setEmailModel($this->emailModel);
     $origin = $this->emailOriginHelper->findEmailOrigin($emailOwner, $organization, $originName, $enableUseUserEmailOrigin);
     self::assertNotNull($origin);
 }
Ejemplo n.º 2
0
 /**
  * Find existing email origin entity by email string or create and persist new one.
  *
  * @param string                $email
  * @param OrganizationInterface $organization
  * @param string                $originName
  * @param boolean               $enableUseUserEmailOrigin
  *
  * @return EmailOrigin
  */
 public function getEmailOrigin($email, OrganizationInterface $organization = null, $originName = InternalEmailOrigin::BAP, $enableUseUserEmailOrigin = true)
 {
     $originKey = $originName . $email;
     if (!$organization && $this->securityFacade !== null && $this->securityFacade->getOrganization()) {
         $organization = $this->securityFacade->getOrganization();
     }
     if (!array_key_exists($originKey, $this->origins)) {
         $emailOwner = $this->emailOwnerProvider->findEmailOwner($this->getEntityManager(), $this->emailAddressHelper->extractPureEmailAddress($email));
         $origin = $this->emailOriginHelper->findEmailOrigin($emailOwner, $organization, $originName, $enableUseUserEmailOrigin);
         $this->origins[$originKey] = $origin;
     }
     return $this->origins[$originKey];
 }