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()); }
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())); }