Optimized MVC and implemented function tests for format

This commit is contained in:
Kevin Frantz 2019-03-29 17:53:06 +01:00
parent 522ba1994e
commit 94b84527a8
9 changed files with 92 additions and 10 deletions

View File

@ -6,6 +6,8 @@ use Infinito\Entity\Meta\Relation\RelationInterface;
/**
* @author kevinfrantz
*
* @see RelationAttributInterface
*/
trait RelationAttribut
{
@ -14,11 +16,21 @@ trait RelationAttribut
*/
protected $relation;
/**
* @param RelationInterface $relation
*
* @see RelationAttributInterface
*/
public function setRelation(RelationInterface $relation): void
{
$this->relation = $relation;
}
/**
* @see RelationAttributInterface
*
* @return RelationInterface
*/
public function getRelation(): RelationInterface
{
return $this->relation;

View File

@ -9,7 +9,13 @@ use Infinito\Entity\Meta\Relation\RelationInterface;
*/
interface RelationAttributInterface
{
/**
* @param RelationInterface $relation
*/
public function setRelation(RelationInterface $relation): void;
/**
* @return RelationInterface
*/
public function getRelation(): RelationInterface;
}

View File

@ -11,14 +11,29 @@ use Fresh\DoctrineEnumBundle\DBAL\Types\AbstractEnumType;
*/
final class LayerType extends AbstractEnumType
{
/**
* @var string
*/
public const HEREDITY = 'heredity';
/**
* @var string
*/
public const RIGHT = 'right';
/**
* @var string
*/
public const SOURCE = 'source';
/**
* @var string
*/
public const LAW = 'law';
/**
* @var string
*/
public const MEMBER = 'member';
const CREATOR = 'creator';

View File

@ -44,8 +44,10 @@ final class MVCRoutineService implements MVCRoutineServiceInterface
*/
public function process(): View
{
$this->processService->process();
$data = $this->processService->process();
$view = $this->viewBuilder->getView();
$view->setData($data);
return $this->viewBuilder->getView();
return $view;
}
}

View File

@ -70,7 +70,7 @@ final class ProcessService implements ProcessServiceInterface
*
* @see \Infinito\Domain\ProcessManagement\ProcessServiceInterface::process()
*/
public function process(): void
public function process()
{
if ($this->requestedActionService->hasRequestedEntity() && $this->requestedActionService->getRequestedEntity()->hasIdentity()) {
// READ VIEW
@ -95,5 +95,7 @@ final class ProcessService implements ProcessServiceInterface
->createView();
$this->actionTemplateDataStore->setData(ActionType::CREATE, $updateForm);
}
return $this->actionTemplateDataStore;
}
}

View File

@ -7,5 +7,8 @@ namespace Infinito\Domain\ProcessManagement;
*/
interface ProcessServiceInterface
{
public function process(): void;
/**
* @todo specify return type
*/
public function process();
}

View File

@ -10,21 +10,18 @@ use Infinito\Logic\Operation\OperationInterface;
use Infinito\Attribut\ConditionAttribut;
use Infinito\Attribut\RecieverAttribut;
use Infinito\Attribut\LayerAttribut;
use Infinito\Attribut\RelationAttribut;
use Infinito\Attribut\PriorityAttribut;
use Infinito\Entity\Source\SourceInterface;
use Infinito\Attribut\ActionTypeAttribut;
/**
* @todo Remove relation attribut!
*
* @author kevinfrantz
* @ORM\Table(name="meta_right")
* @ORM\Entity(repositoryClass="Infinito\Repository\Meta\RightRepository")
*/
class Right extends AbstractMeta implements RightInterface
{
use ActionTypeAttribut,LawAttribut, RelationAttribut, GrantAttribut,ConditionAttribut,RecieverAttribut,LayerAttribut,PriorityAttribut;
use ActionTypeAttribut,LawAttribut, GrantAttribut,ConditionAttribut,RecieverAttribut,LayerAttribut,PriorityAttribut;
/**
* @ORM\OneToOne(targetEntity="Infinito\Entity\Source\AbstractSource",cascade={"persist", "remove"})

View File

@ -7,13 +7,12 @@ use Infinito\Attribut\RecieverAttributInterface;
use Infinito\Attribut\GrantAttributInterface;
use Infinito\Attribut\ConditionAttributInterface;
use Infinito\Attribut\LayerAttributInterface;
use Infinito\Attribut\RelationAttributInterface;
use Infinito\Attribut\PriorityAttributInterface;
use Infinito\Attribut\ActionTypeAttributInterface;
/**
* @author kevinfrantz
*/
interface RightInterface extends ActionTypeAttributInterface, LawAttributInterface, GrantAttributInterface, RecieverAttributInterface, RelationAttributInterface, ConditionAttributInterface, LayerAttributInterface, MetaInterface, PriorityAttributInterface
interface RightInterface extends ActionTypeAttributInterface, LawAttributInterface, GrantAttributInterface, RecieverAttributInterface, ConditionAttributInterface, LayerAttributInterface, MetaInterface, PriorityAttributInterface
{
}

View File

@ -0,0 +1,46 @@
<?php
namespace Tests\Functional;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
/**
* @author kevinfrantz
*/
class FormatFunctionTest extends WebTestCase
{
public function testHomepage(): void
{
$client = static::createClient();
$client->request(Request::METHOD_GET, 'api/rest/source/HOMEPAGE');
$this->assertEquals(200, $client->getResponse()->getStatusCode());
$this->assertContains('<html', $client->getResponse()->getContent());
}
public function testHomepageWithHTML(): void
{
$client = static::createClient();
$client->request(Request::METHOD_GET, 'api/rest/source/HOMEPAGE.html');
$this->assertEquals(200, $client->getResponse()->getStatusCode());
$this->assertContains('<html', $client->getResponse()->getContent());
}
public function testHomepageWithJSON(): void
{
$client = static::createClient();
$client->request(Request::METHOD_GET, 'api/rest/source/HOMEPAGE.json');
echo $client->getResponse()->getContent();
$this->assertEquals(200, $client->getResponse()->getStatusCode());
// $this->assertContains('<html', $client->getResponse()->getContent());
}
public function testHomepageWithXML(): void
{
$client = static::createClient();
$client->request(Request::METHOD_GET, 'api/rest/source/HOMEPAGE.xml');
echo $client->getResponse()->getContent();
$this->assertEquals(200, $client->getResponse()->getStatusCode());
// $this->assertContains('<html', $client->getResponse()->getContent());
}
}