/** * @test */ public function shouldCreateTheUser() { $this->userSessionFactory->shouldReceive('create'); $user = $this->createUser(); $userToken = $this->createUserToken(); $this->repository->create($user, $userToken); }
/** * @param User $user * * @return UserSession * * @throws AuthenticationFailException */ public function login(User $user) : UserSession { if (!$this->userRepository->exists($user)) { throw new AuthenticationFailException('User not exists'); } $userSession = $this->userSessionRepository->getByUser($user); if (!$userSession) { $userToken = $this->userTokenFactory->create($user); /** @var UserSession $userSession */ $userSession = $this->userSessionFactory->create(); $userSession->setUser($user); $userSession->setToken($userToken); $this->userSessionRepository->save($userSession); } return $userSession; }