refactor element updates
This commit is contained in:
parent
581852ecbc
commit
d334745ade
19 changed files with 453 additions and 75 deletions
|
|
@ -5,7 +5,6 @@ namespace Tests\Fakes;
|
|||
use App\Element\CreateElementDto;
|
||||
use App\Element\Element;
|
||||
use App\Element\ElementRepository;
|
||||
use App\Element\UpdateElementDto;
|
||||
use App\Set\Set as DomainSet;
|
||||
|
||||
class FakeElementRepository implements ElementRepository
|
||||
|
|
@ -34,20 +33,10 @@ class FakeElementRepository implements ElementRepository
|
|||
return $element;
|
||||
}
|
||||
|
||||
public function update(Element $element, UpdateElementDto $dto): Element
|
||||
public function update(Element $element): Element
|
||||
{
|
||||
$updatedElement = new Element(
|
||||
id: $element->getId(),
|
||||
title: $dto->title,
|
||||
description: $dto->description,
|
||||
iconImageUrl: $dto->iconImageUrl,
|
||||
richText: $dto->richText,
|
||||
pdfPath: $dto->pdfPath,
|
||||
youtubeUrl: $dto->youtubeUrl,
|
||||
set: $element->getSet(),
|
||||
parentElement: $element->getParentElement(),
|
||||
);
|
||||
$this->elementsById[$element->getId()] = $updatedElement;
|
||||
$updatedElement = $this->cloneElement($element);
|
||||
$this->elementsById[$updatedElement->getId()] = $updatedElement;
|
||||
|
||||
return $this->cloneElement($updatedElement);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,13 @@ use App\Controllers\ElementController;
|
|||
use App\Element\CreateElementDto;
|
||||
use App\Element\Element;
|
||||
use App\Element\UseCases\GetElement\GetElement;
|
||||
use App\Element\UseCases\UpdateElement\UpdateDescription;
|
||||
use App\Element\UseCases\UpdateElement\UpdateElement;
|
||||
use App\Element\UseCases\UpdateElement\UpdateIconImageUrl;
|
||||
use App\Element\UseCases\UpdateElement\UpdatePdfPath;
|
||||
use App\Element\UseCases\UpdateElement\UpdateRichText;
|
||||
use App\Element\UseCases\UpdateElement\UpdateTitle;
|
||||
use App\Element\UseCases\UpdateElement\UpdateYoutubeUrl;
|
||||
use App\Set\Set as DomainSet;
|
||||
use Tests\Fakes\FakeElementRepository;
|
||||
use Tests\TestCase;
|
||||
|
|
@ -21,7 +27,15 @@ class ElementControllerTest extends TestCase
|
|||
{
|
||||
$this->elementRepo = new FakeElementRepository();
|
||||
$getElement = new GetElement($this->elementRepo);
|
||||
$updateElement = new UpdateElement($this->elementRepo);
|
||||
$updateElement = new UpdateElement(
|
||||
new UpdateTitle($this->elementRepo),
|
||||
new UpdateDescription($this->elementRepo),
|
||||
new UpdateIconImageUrl($this->elementRepo),
|
||||
new UpdateRichText($this->elementRepo),
|
||||
new UpdatePdfPath($this->elementRepo),
|
||||
new UpdateYoutubeUrl($this->elementRepo),
|
||||
$this->elementRepo,
|
||||
);
|
||||
$this->controller = new ElementController($getElement, $updateElement);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue