Attainly/backend/tests/Unit/Element/ElementTest.php

61 lines
1.6 KiB
PHP

<?php
namespace Tests\Unit\Element;
use App\Element\Element;
use App\Set\Set;
use App\Set\SetLevel;
use App\Shared\ValueObject\EmailAddress;
use App\User\User;
use PHPUnit\Framework\TestCase;
class ElementTest extends TestCase
{
public function testItExposesItsHierarchicalIdentity(): void
{
$creator = new User(
id: 7,
email: new EmailAddress('creator@example.com'),
passwordHash: 'hashed-password',
);
$set = new Set(
id: 11,
name: 'Bible',
creator: $creator,
);
$bookLevel = new SetLevel(
id: 31,
set: $set,
kind: 'book',
depth: 0,
);
$portionLevel = new SetLevel(
id: 32,
set: $set,
kind: 'portion',
depth: 1,
);
$parentElement = new Element(
id: 21,
name: 'Genesis',
level: $bookLevel,
parentElement: null,
position: 1,
);
$element = new Element(
id: 22,
name: 'Genesis',
level: $portionLevel,
parentElement: $parentElement,
position: 2,
);
$this->assertSame(22, $element->getId());
$this->assertSame('Genesis', $element->getName());
$this->assertSame('portion', $element->getKind());
$this->assertSame($portionLevel, $element->getLevel());
$this->assertSame($set, $element->getSet());
$this->assertSame($parentElement, $element->getParentElement());
$this->assertSame(2, $element->getPosition());
}
}