public function testImapPortGetterAndSetter()
 {
     $origin = new UserEmailOrigin();
     $this->assertEquals(null, $origin->getImapPort());
     $origin->setImapPort(123);
     $this->assertEquals(123, $origin->getImapPort());
 }
 /**
  * @param string $type
  * @param string|null $accessToken
  * @param string $formParentName
  *
  * @return FormInterface
  */
 public function getImapConnectionForm($type, $accessToken, $formParentName)
 {
     $oauthEmailOrigin = new UserEmailOrigin();
     $oauthEmailOrigin->setAccessToken($accessToken);
     if ($type === AccountTypeModel::ACCOUNT_TYPE_GMAIL) {
         $oauthEmailOrigin->setImapHost(GmailImap::DEFAULT_GMAIL_HOST);
         $oauthEmailOrigin->setImapPort(GmailImap::DEFAULT_GMAIL_PORT);
     }
     $accountTypeModel = $this->createAccountModel($type, $oauthEmailOrigin);
     return $this->prepareForm($formParentName, $accountTypeModel);
 }
 /**
  * Create object of AccountTypeModel using data of form
  *
  * @param array $data
  *
  * @return AccountTypeModel|null
  */
 protected function createAccountTypeModelFromData($data)
 {
     $imapGmailConfiguration = isset($data['userEmailOrigin']) ? $data['userEmailOrigin'] : [];
     if (empty($imapGmailConfiguration['user'])) {
         return null;
     }
     $accountTypeModel = new AccountTypeModel();
     $accountTypeModel->setAccountType($data['accountType']);
     $userEmailOrigin = new UserEmailOrigin();
     $userEmailOrigin->setImapHost($imapGmailConfiguration['imapHost']);
     $userEmailOrigin->setImapPort($imapGmailConfiguration['imapPort']);
     $userEmailOrigin->setImapEncryption($imapGmailConfiguration['imapEncryption']);
     $userEmailOrigin->setUser($imapGmailConfiguration['user']);
     if (!empty($imapGmailConfiguration['accessTokenExpiresAt'])) {
         $newExpireDate = $imapGmailConfiguration['accessTokenExpiresAt'];
         if (!$newExpireDate instanceof \Datetime) {
             $utcTimeZone = new \DateTimeZone('UTC');
             $accessTokenExpiresAt = $imapGmailConfiguration['accessTokenExpiresAt'];
             $newExpireDate = new \DateTime('+' . $accessTokenExpiresAt . ' seconds', $utcTimeZone);
         }
         $userEmailOrigin->setAccessTokenExpiresAt($newExpireDate);
     }
     $accountTypeModel->setUserEmailOrigin($userEmailOrigin);
     return $accountTypeModel;
 }