/** * @param HHPnet\Core\Application\Services\Groups\SaveGroup\SaveGroupRequest $request * @param HHPnet\Core\Domain\Groups\Group $group */ public function it_is_possible_to_save_a_new_group(SaveGroupRequest $request, Group $group) { $request->name()->willReturn('name'); $request->country()->willReturn('country'); $request->bio()->willReturn('bio'); $this->factory->getGroupEntity(null, 'name', 'country', 'bio')->willReturn($group); $this->repository->getByGroupByName('name')->willThrow('\\UnexpectedValueException'); $this->repository->save($group)->willReturn($group); $this->execute($request)->shouldHaveType('HHPnet\\Core\\Application\\Services\\Groups\\SaveGroup\\SaveGroupResponse'); }
/** * @param HHPnet\Core\Application\Services\Groups\SaveGroupRequest $request * * @return HHPnet\Core\Application\Services\Groups\SaveGroupResponse */ public function execute(SaveGroupRequest $request) { try { $this->repository->getByGroupByName($request->name()); throw new \DomainException('Given group has been registered in our database'); } catch (\UnexpectedValueException $e) { } $group = $this->repository->save($this->factory->getGroupEntity(null, $request->name(), $request->country(), $request->bio())); return new SaveGroupResponse($group); }