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); }