public function setUp()
 {
     $this->fixtures = ['primaryEmail' => [1 => (new EmailAddress(1))->setEmail('*****@*****.**'), 2 => (new EmailAddress(2))->setEmail('*****@*****.**')], 'email' => ['*****@*****.**' => (new EmailAddress(1))->setEmail('*****@*****.**'), '*****@*****.**' => (new EmailAddress(2))->setEmail('*****@*****.**')]];
     $emailOwnerProvider = $this->getMock('Oro\\Bundle\\EmailBundle\\Entity\\Provider\\EmailOwnerProviderInterface');
     $emailOwnerProvider->expects($this->any())->method('getEmailOwnerClass')->will($this->returnValue('Oro\\Bundle\\EmailBundle\\Tests\\Unit\\Entity\\TestFixtures\\TestEmailOwner'));
     $this->emailOwnerProviderStorage = $this->getMockBuilder('Oro\\Bundle\\EmailBundle\\Entity\\Provider\\EmailOwnerProviderStorage')->disableOriginalConstructor()->getMock();
     $this->emailOwnerProviderStorage->expects($this->any())->method('getProviders')->will($this->returnValue([$emailOwnerProvider, $emailOwnerProvider]));
     $this->emailOwnerProviderStorage->expects($this->any())->method('getEmailOwnerFieldName')->will($this->onConsecutiveCalls('primaryEmail', 'homeEmail'));
     $emailAddressRepository = $this->getMockBuilder('Doctrine\\ORM\\EntityRepository')->disableOriginalConstructor()->getMock();
     $emailAddressRepository->expects($this->any())->method('findOneBy')->will($this->returnCallback(function (array $criteria) {
         return $this->findEmailAddressBy($criteria['email']);
     }));
     $emailAddressRepository->expects($this->any())->method('findBy')->will($this->returnCallback(function (array $criteria) {
         $keys = array_keys($criteria);
         $owner = $criteria[$keys[0]];
         $emailAddress = $this->findEmailAddressBy($owner->getId(), $keys[0]);
         if ($emailAddress) {
             return [$emailAddress];
         }
         return [];
     }));
     $em = $this->getMockBuilder('Doctrine\\ORM\\EntityManager')->disableOriginalConstructor()->getMock();
     $this->emailAddressManager = $this->getMockBuilder('Oro\\Bundle\\EmailBundle\\Entity\\Manager\\EmailAddressManager')->disableOriginalConstructor()->getMock();
     $this->emailAddressManager->expects($this->any())->method('getEmailAddressRepository')->will($this->returnValue($emailAddressRepository));
     $this->emailAddressManager->expects($this->any())->method('newEmailAddress')->will($this->returnValue(new EmailAddress()));
     $this->emailAddressManager->expects($this->any())->method('getEntityManager')->will($this->returnValue($em));
     $this->emailOwnerManager = new EmailOwnerManager($this->emailOwnerProviderStorage, $this->emailAddressManager);
 }
 public function testPreciseFulEmailAddressNoResult()
 {
     $emailAddress = $expected = '*****@*****.**';
     $ownerClass = 'Oro\\Bundle\\UserBundle\\Entity\\User';
     $ownerId = 2;
     $this->entityRoutingHelper->expects($this->once())->method('getEntity')->with($ownerClass, $ownerId)->willReturn(null);
     $repo = $this->getMockBuilder('Doctrine\\ORM\\EntityRepository')->disableOriginalConstructor()->getMock();
     $repo->expects($this->once())->method('findOneBy')->willReturn(null);
     $this->emailAddressManager->expects($this->once())->method('getEmailAddressRepository')->with($this->entityManager)->willReturn($repo);
     $this->entityNameResolver->expects($this->never())->method('getName');
     $this->helper->preciseFullEmailAddress($emailAddress, $ownerClass, $ownerId);
     $this->assertEquals($emailAddress, $expected);
 }