public function testEmailOrigins() { $entity = new User(); $origin1 = new InternalEmailOrigin(); $origin2 = new InternalEmailOrigin(); $this->assertCount(0, $entity->getEmailOrigins()); $entity->addEmailOrigin($origin1); $entity->addEmailOrigin($origin2); $this->assertCount(2, $entity->getEmailOrigins()); $this->assertSame($origin1, $entity->getEmailOrigins()->first()); $this->assertSame($origin2, $entity->getEmailOrigins()->last()); $entity->removeEmailOrigin($origin1); $this->assertCount(1, $entity->getEmailOrigins()); $this->assertSame($origin2, $entity->getEmailOrigins()->first()); }
/** * Get imap origin if exists. * * @param User $user * @param OrganizationInterface $organization * @param bool $enableUseUserEmailOrigin * * @return InternalEmailOrigin|null|mixed */ protected function getPreferredOrigin(User $user, $organization, $enableUseUserEmailOrigin) { $origins = new ArrayCollection(); if ($enableUseUserEmailOrigin) { $origins = $user->getEmailOrigins()->filter($this->getImapEnabledFilter($organization)); } if ($origins->isEmpty()) { $origins = $user->getEmailOrigins()->filter($this->getInternalFilter($organization)); } $origin = $origins->isEmpty() ? null : $origins->first(); if ($origin === null) { $origin = $this->createUserInternalOrigin($user, $organization); } return $origin; }