Exemple #1
0
 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;
 }