public function testFindLatestOneByUserId()
 {
     $originalUserToken = $this->setupUserWithToken();
     $this->setCountLogger();
     $userToken = $this->userTokenRepository->findLatestOneByUserId($originalUserToken->getUser()->getId());
     $userToken->getUser()->getEmail();
     $this->assertEntitiesEqual($originalUserToken, $userToken);
     $this->assertSame(2, $this->getTotalQueries());
 }
Beispiel #2
0
 public function loginWithToken($email, $token, $remoteIp)
 {
     $user = $this->getUserOrAssertAndRecordLoginFailure($email, $remoteIp);
     try {
         $userToken = $this->userTokenRepository->findLatestOneByUserId($user->getId());
     } catch (EntityNotFoundException $e) {
         $this->recordLogin($email, $remoteIp, UserLoginResultType::fail(), $user);
         throw UserLoginException::tokenNotFound();
     }
     if (!$userToken->verifyToken($token)) {
         $this->recordLogin($email, $remoteIp, UserLoginResultType::fail(), $user);
         throw UserLoginException::tokenNotValid();
     }
     if (!$userToken->verifyTokenDateValid()) {
         $this->recordLogin($email, $remoteIp, UserLoginResultType::fail(), $user);
         throw UserLoginException::tokenExpired();
     }
     $this->recordLogin($email, $remoteIp, UserLoginResultType::success(), $user);
     return $user;
 }
 public function testRequestPasswordResetToken()
 {
     $user1 = $this->dummyData->getUser();
     $ip4 = self::IP4;
     $userAgent = self::USER_AGENT;
     $this->userRepository->shouldReceive('findOneByEmail')->andReturn($user1)->once();
     $this->userTokenRepository->shouldReceive('create')->once();
     $this->userService->requestPasswordResetToken($user1->getEmail(), $userAgent, $ip4);
     /** @var ResetPasswordEvent $event */
     $event = $this->fakeEventDispatcher->getDispatchedEvents(ResetPasswordEvent::class)[0];
     $this->assertTrue($event instanceof ResetPasswordEvent);
     $this->assertSame($user1->getId(), $event->getUserId());
     $this->assertSame($user1->getEmail(), $event->getEmail());
     $this->assertSame($user1->getFullName(), $event->getFullName());
     $this->assertSame(40, strlen($event->getToken()));
 }