/**
  * @param string $login
  * @param string $password
  * @param bool $rememberMe
  * @return Token
  */
 public function login($login, $password, $rememberMe = true)
 {
     try {
         $account = $this->accountService->getRepository()->findByLogin($login);
         if ($rememberMe === true) {
             $config = Game::getInstance()->getConfig();
             $rememberDays = $config["app"]["remember_days"];
             $endTime = time() + 3600 * 24 * $rememberDays;
         } else {
             $endTime = time() + 600;
         }
         $endDate = new \DateTime();
         $endDate->setTimestamp($endTime);
         if (is_null($account->getAuthToken())) {
             $token = $this->tokenService->generateToken($account, $endDate);
             $account->setAuthToken($token);
         } elseif (!$this->tokenService->isValid($account->getAuthToken()->getValue())) {
             $token = $this->tokenService->generateToken($account, $endDate);
             $account->setAuthToken($token);
         }
         $this->accountService->getRepository()->save($account);
         return $account->getAuthToken();
     } catch (EntityNotFoundException $e) {
         return false;
     }
 }
 /**
  * @param \Likedimion\Tools\Helper\PlayerDataHelper $playerData
  * @throws \Likedimion\Exception\RegistrationException
  * @return Player
  */
 public function createPlayer(PlayerDataHelper $playerData)
 {
     try {
         $findPlayer = $this->playerService->getRepository()->findPlayerByName($playerData->name);
         throw new RegistrationException("player_name_exists");
     } catch (EntityNotFoundException $e) {
         $player = new Player();
         $player->setName($playerData->name);
         $player->setSex($playerData->sex);
         $player->setClass($playerData->class);
         $player->setRace($playerData->race);
         $stats = $player->getStats();
         $cfg = Game::getInstance()->getConfig();
         $stats->setStrenge($cfg["new_player"][$player->getClass()]["str"]);
         $stats->setDexterity($cfg["new_player"][$player->getClass()]["dex"]);
         $stats->setIntelligence($cfg["new_player"][$player->getClass()]["int"]);
         $stats->setSpirituality($cfg["new_player"][$player->getClass()]["spr"]);
         $stats->setEndurance($cfg["new_player"][$player->getClass()]["end"]);
         $player->setStats($stats);
         $this->playerCalculatingService->calculate($player);
         $this->playerService->getRepository()->save($player);
         $account = $this->authService->getAccount(Game::getInstance()->getAuthToken()->getValue());
         $player->setAccount($account);
         $this->accountService->getRepository()->save($account);
         $this->playerService->getRepository()->save($player);
         return $player;
     }
 }
 public function testAccount()
 {
     try {
         $account = $this->accountService->getRepository()->findByEmail($this->email);
         $this->assertInstanceOf($this->entityAccountClass, $account);
     } catch (EntityNotFoundException $e) {
         $this->fail($e->getMessage());
     }
 }
 public function testRemoveAccount()
 {
     try {
         $account = $this->accountService->getRepository()->findByEmail($this->email);
         $this->assertInstanceOf($this->entityAccountClass, $account);
         $this->accountService->getRepository()->remove($account);
     } catch (EntityNotFoundException $e) {
         $this->assertTrue(true);
     }
 }