/** * @param SignUpUserRequest $request * * @return SignUpUserResponse */ public function execute(SignUpUserRequest $request) { try { $this->repository->getByEmail($request->email()); throw new \DomainException('Given email has been found in database and can not be registered'); } catch (\UnexpectedValueException $e) { } $save_user_result = $this->repository->save($this->factory->getUserEntity($this->repository->nextIdentity(), $request->username(), $request->password(), $request->email())); return new SignUpUserResponse($save_user_result); }
/** * @param HHPnet\Core\Application\Services\Users\SignUpUser\SignUpUserRequest $request * @param HHPnet\Core\Domain\Users\User $user * @param HHPnet\Core\Domain\Users\UserId $user_id */ public function it_is_possible_to_save_a_new_user(SignUpUserRequest $request, User $user, UserId $user_id) { $request->username()->willReturn('test'); $request->password()->willReturn('test'); $request->email()->willReturn('test'); $this->factory->getUserEntity($user_id, 'test', 'test', 'test')->willReturn($user); $this->repository->getByEmail('test')->willThrow('\\UnexpectedValueException'); $this->repository->save($user)->willReturn($user); $this->repository->nextIdentity()->willReturn($user_id); $this->execute($request)->shouldHaveType('HHPnet\\Core\\Application\\Services\\Users\\SignUpUser\\SignUpUserResponse'); }
private function getUserInstance($user_data) { if (is_null($user_data)) { throw new \UnexpectedValueException('User not found in database'); } return $this->factory->getUserEntity(new UserId($user_data['_id']), $user_data['username'], $user_data['password'], $user_data['email']); }