49 lines
1.3 KiB
PHP
49 lines
1.3 KiB
PHP
<?php
|
|
|
|
namespace Tests\Unit\Element;
|
|
|
|
use App\Element\Element;
|
|
use App\Set\Set;
|
|
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,
|
|
);
|
|
$parentElement = new Element(
|
|
id: 21,
|
|
name: 'Genesis',
|
|
kind: 'book',
|
|
set: $set,
|
|
parentElement: null,
|
|
position: 1,
|
|
);
|
|
$element = new Element(
|
|
id: 22,
|
|
name: 'Genesis',
|
|
kind: 'portion',
|
|
set: $set,
|
|
parentElement: $parentElement,
|
|
position: 2,
|
|
);
|
|
|
|
$this->assertSame(22, $element->getId());
|
|
$this->assertSame('Genesis', $element->getName());
|
|
$this->assertSame('portion', $element->getKind());
|
|
$this->assertSame($set, $element->getSet());
|
|
$this->assertSame($parentElement, $element->getParentElement());
|
|
$this->assertSame(2, $element->getPosition());
|
|
}
|
|
}
|