test level based scheduling
This commit is contained in:
parent
99e1ba051c
commit
a64df64b76
7 changed files with 415 additions and 94 deletions
|
|
@ -22,8 +22,7 @@ class FakeElementRepository implements ElementRepository
|
|||
$element = new Element(
|
||||
id: $id,
|
||||
name: $dto->name,
|
||||
kind: $dto->kind,
|
||||
set: $dto->set,
|
||||
level: $dto->level,
|
||||
parentElement: $dto->parentElement,
|
||||
position: $this->nextPosition($dto),
|
||||
);
|
||||
|
|
@ -88,14 +87,32 @@ class FakeElementRepository implements ElementRepository
|
|||
{
|
||||
$parentElement = $dto->parentElement;
|
||||
if ($parentElement === null) {
|
||||
if ($dto->level->getDepth() !== 0) {
|
||||
throw new DomainException(
|
||||
'root element must use the first set level',
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ($parentElement->getSet()->getId() !== $dto->set->getId()) {
|
||||
if (
|
||||
$parentElement->getSet()->getId()
|
||||
!== $dto->level->getSet()->getId()
|
||||
) {
|
||||
throw new DomainException(
|
||||
'parent element must belong to the same set',
|
||||
);
|
||||
}
|
||||
|
||||
if (
|
||||
$dto->level->getDepth()
|
||||
!== $parentElement->getLevel()->getDepth() + 1
|
||||
) {
|
||||
throw new DomainException(
|
||||
'child element must use the next set level',
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
private function nextPosition(CreateElementDto $dto): int
|
||||
|
|
@ -104,7 +121,10 @@ class FakeElementRepository implements ElementRepository
|
|||
$maximumPosition = 0;
|
||||
|
||||
foreach ($this->elements as $element) {
|
||||
if ($element->getSet()->getId() !== $dto->set->getId()) {
|
||||
if (
|
||||
$element->getSet()->getId()
|
||||
!== $dto->level->getSet()->getId()
|
||||
) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
@ -150,8 +170,7 @@ class FakeElementRepository implements ElementRepository
|
|||
return new Element(
|
||||
id: $element->getId(),
|
||||
name: $element->getName(),
|
||||
kind: $element->getKind(),
|
||||
set: $element->getSet(),
|
||||
level: $element->getLevel(),
|
||||
parentElement: $parentElement === null
|
||||
? null
|
||||
: $this->copy($parentElement),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue