mirror of
https://github.com/kevinveenbirkenbach/infinito.git
synced 2025-04-16 10:16:22 +02:00
In between commit implementing EntityDomServiceTest
This commit is contained in:
parent
608b00794b
commit
0b50b1df9a
@ -4,6 +4,11 @@ namespace Infinito\Attribut;
|
|||||||
|
|
||||||
use Infinito\Entity\Meta\Relation\Parent\CreatorRelationInterface;
|
use Infinito\Entity\Meta\Relation\Parent\CreatorRelationInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author kevinfrantz
|
||||||
|
*
|
||||||
|
* @see CreatorRelationAttributInterface
|
||||||
|
*/
|
||||||
trait CreatorRelationAttribut
|
trait CreatorRelationAttribut
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
@ -11,11 +16,17 @@ trait CreatorRelationAttribut
|
|||||||
*/
|
*/
|
||||||
protected $creatorRelation;
|
protected $creatorRelation;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param CreatorRelationInterface $creatorRelation
|
||||||
|
*/
|
||||||
public function setCreatorRelation(CreatorRelationInterface $creatorRelation)
|
public function setCreatorRelation(CreatorRelationInterface $creatorRelation)
|
||||||
{
|
{
|
||||||
$this->creatorRelation = $creatorRelation;
|
$this->creatorRelation = $creatorRelation;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return CreatorRelationInterface
|
||||||
|
*/
|
||||||
public function getCreatorRelation(): CreatorRelationInterface
|
public function getCreatorRelation(): CreatorRelationInterface
|
||||||
{
|
{
|
||||||
return $this->creatorRelation;
|
return $this->creatorRelation;
|
||||||
|
@ -4,9 +4,20 @@ namespace Infinito\Attribut;
|
|||||||
|
|
||||||
use Infinito\Entity\Meta\Relation\Parent\CreatorRelationInterface;
|
use Infinito\Entity\Meta\Relation\Parent\CreatorRelationInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author kevinfrantz
|
||||||
|
*/
|
||||||
interface CreatorRelationAttributInterface
|
interface CreatorRelationAttributInterface
|
||||||
{
|
{
|
||||||
|
const CREATORRELATION_ATTRIBUT_NAME = 'creatorRelation';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param CreatorRelationInterface $creatorRelation
|
||||||
|
*/
|
||||||
public function setCreatorRelation(CreatorRelationInterface $creatorRelation);
|
public function setCreatorRelation(CreatorRelationInterface $creatorRelation);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return CreatorRelationInterface
|
||||||
|
*/
|
||||||
public function getCreatorRelation(): CreatorRelationInterface;
|
public function getCreatorRelation(): CreatorRelationInterface;
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,8 @@ namespace Infinito\Attribut;
|
|||||||
*/
|
*/
|
||||||
interface IdAttributInterface
|
interface IdAttributInterface
|
||||||
{
|
{
|
||||||
|
const ID_ATTRIBUT_NAME = 'id';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param int $id
|
* @param int $id
|
||||||
*/
|
*/
|
||||||
|
@ -4,6 +4,8 @@ namespace Infinito\Attribut;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @author kevinfrantz
|
* @author kevinfrantz
|
||||||
|
*
|
||||||
|
* @see VersionAttributInterface
|
||||||
*/
|
*/
|
||||||
trait VersionAttribut
|
trait VersionAttribut
|
||||||
{
|
{
|
||||||
@ -12,11 +14,17 @@ trait VersionAttribut
|
|||||||
*/
|
*/
|
||||||
protected $version;
|
protected $version;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $version
|
||||||
|
*/
|
||||||
public function setVersion(int $version): void
|
public function setVersion(int $version): void
|
||||||
{
|
{
|
||||||
$this->version = $version;
|
$this->version = $version;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
public function getVersion(): int
|
public function getVersion(): int
|
||||||
{
|
{
|
||||||
return $this->version;
|
return $this->version;
|
||||||
|
@ -12,6 +12,11 @@ namespace Infinito\Attribut;
|
|||||||
*/
|
*/
|
||||||
interface VersionAttributInterface
|
interface VersionAttributInterface
|
||||||
{
|
{
|
||||||
|
/**
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
const VERSION_ATTRIBUT_NAME = 'version';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the revision version of the entity.
|
* Returns the revision version of the entity.
|
||||||
*
|
*
|
||||||
|
@ -121,8 +121,8 @@ final class EntityDomService implements EntityDomServiceInterface
|
|||||||
if ($value instanceof $class) {
|
if ($value instanceof $class) {
|
||||||
$domElement->setAttribute('layer', $layer);
|
$domElement->setAttribute('layer', $layer);
|
||||||
$domElement->setAttribute('id', $value->getId());
|
$domElement->setAttribute('id', $value->getId());
|
||||||
$domElement->setAttribute('value', $value->getId());
|
|
||||||
$domElement->setAttribute('name', LayerType::getReadableValue($layer));
|
$domElement->setAttribute('name', LayerType::getReadableValue($layer));
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,69 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace tests\Unit\Domain\DomManagement;
|
||||||
|
|
||||||
|
use PHPUnit\Framework\TestCase;
|
||||||
|
use Infinito\Domain\DomManagement\EntityDomServiceInterface;
|
||||||
|
use Infinito\Domain\RequestManagement\Entity\RequestedEntityServiceInterface;
|
||||||
|
use Infinito\Domain\DomManagement\EntityDomService;
|
||||||
|
use Infinito\Entity\Source\AbstractSource;
|
||||||
|
use Infinito\Attribut\SlugAttributInterface;
|
||||||
|
use Infinito\Attribut\IdAttributInterface;
|
||||||
|
use Infinito\DBAL\Types\Meta\Right\LayerType;
|
||||||
|
use Infinito\Attribut\VersionAttributInterface;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author kevinfrantz
|
||||||
|
*/
|
||||||
|
class EntityDomServiceTest extends TestCase
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* @var EntityDomServiceInterface
|
||||||
|
*/
|
||||||
|
private $entityDomService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var RequestedEntityServiceInterface
|
||||||
|
*/
|
||||||
|
private $requestedEntityService;
|
||||||
|
|
||||||
|
public function setUp(): void
|
||||||
|
{
|
||||||
|
$this->requestedEntityService = $this->createMock(RequestedEntityServiceInterface::class);
|
||||||
|
$this->entityDomService = new EntityDomService($this->requestedEntityService);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testAbstractSource(): void
|
||||||
|
{
|
||||||
|
$slug = 'test';
|
||||||
|
$id = 12345;
|
||||||
|
$source = new class() extends AbstractSource {
|
||||||
|
};
|
||||||
|
$source->setSlug($slug);
|
||||||
|
$source->setId($id);
|
||||||
|
$source->getCreatorRelation()->setId(1);
|
||||||
|
$source->getMemberRelation()->setId(2);
|
||||||
|
$source->getLaw()->setId(3);
|
||||||
|
$this->requestedEntityService->method('getEntity')->willReturn($source);
|
||||||
|
$result = $this->entityDomService->getDomDocument();
|
||||||
|
$expectedAttributNames = [
|
||||||
|
SlugAttributInterface::SLUG_ATTRIBUT_NAME,
|
||||||
|
IdAttributInterface::ID_ATTRIBUT_NAME,
|
||||||
|
VersionAttributInterface::VERSION_ATTRIBUT_NAME,
|
||||||
|
LayerType::getReadableValue(LayerType::MEMBER),
|
||||||
|
LayerType::getReadableValue(LayerType::LAW),
|
||||||
|
// LayerType::getReadableValue(LayerType::HEREDITY),
|
||||||
|
LayerType::getReadableValue(LayerType::CREATOR),
|
||||||
|
];
|
||||||
|
$this->assertEquals(count($expectedAttributNames), count($result->childNodes));
|
||||||
|
foreach ($result->childNodes as $attribut) {
|
||||||
|
$name = $attribut->getAttribute('name');
|
||||||
|
$layer = $attribut->getAttribute('layer');
|
||||||
|
$id = $attribut->getAttribute('id');
|
||||||
|
$this->assertTrue(in_array($name, $expectedAttributNames), "The attribut name <<$name>> is not defined in the expected values!");
|
||||||
|
if (in_array($layer, LayerType::getValues())) {
|
||||||
|
$this->assertGreaterThan(0, $id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user