Optimized RequestedEntityFormBuilderService and implemented form classes and logic

This commit is contained in:
Kevin Frantz
2019-02-03 15:21:45 +01:00
parent c3b8e1a92d
commit ed3062a203
18 changed files with 247 additions and 79 deletions

View File

@@ -6,7 +6,7 @@ use App\Domain\ActionManagement\Create\CreateSourceAction;
use App\Domain\ActionManagement\ActionService;
use App\Domain\ActionManagement\Create\CreateActionInterface;
use App\Domain\ActionManagement\ActionServiceInterface;
use App\Domain\FormManagement\EntityFormBuilderServiceInterface;
use App\Domain\FormManagement\RequestedEntityFormBuilderServiceInterface;
use Symfony\Component\HttpFoundation\RequestStack;
use App\Domain\RepositoryManagement\LayerRepositoryFactoryServiceInterface;
use App\Domain\SecureManagement\SecureRequestedRightCheckerInterface;
@@ -16,8 +16,13 @@ use App\Domain\RequestManagement\Right\RequestedRightService;
use App\Domain\RequestManagement\Action\RequestedActionServiceInterface;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
use App\DBAL\Types\ActionType;
use App\Domain\RequestManagement\User\RequestedUserService;
use App\Domain\UserManagement\UserSourceDirectorService;
use Symfony\Component\Security\Core\Security;
/**
* @todo Implement test and logic!!!!!
*
* @author kevinfrantz
*/
class CreateSourceActionIntegrationTest extends KernelTestCase
@@ -37,28 +42,31 @@ class CreateSourceActionIntegrationTest extends KernelTestCase
*/
private $requestedActionService;
// public function setUp(): void
// {
// self::bootKernel();
// $entityManager = static::$kernel->getContainer()->get('doctrine')->getManager();
// $requestedRightService = new RequestedRightService();
// $this->requestedActionService = new RequestedActionService($requestedRightService);
// $this->requestedActionService->setActionType(ActionType::CREATE);
// $entityFormBuilderService = $this->createMock(EntityFormBuilderServiceInterface::class);
// $requestStack = $this->createMock(RequestStack::class);
// $layerRepositoryFactoryService = $this->createMock(LayerRepositoryFactoryServiceInterface::class);
// $secureRequestedRightChecker = $this->createMock(SecureRequestedRightCheckerInterface::class);
// $this->actionService = new ActionService($this->requestedActionService, $secureRequestedRightChecker, $requestStack, $layerRepositoryFactoryService, $entityFormBuilderService, $entityManager);
// $this->createSourceAction = new CreateSourceAction($this->actionService);
// }
public function setUp(): void
{
self::bootKernel();
$entityManager = static::$kernel->getContainer()
->get('doctrine')
->getManager();
$security = $this->createMock(Security::class);
$userSourceDirectorService = new UserSourceDirectorService($entityManager, $security);
$requestedRightService = new RequestedRightService();
$requestedUserService = new RequestedUserService($userSourceDirectorService, $requestedRightService);
$this->requestedActionService = new RequestedActionService($userSourceDirectorService, $requestedUserService);
$this->requestedActionService->setActionType(ActionType::CREATE);
$entityFormBuilderService = $this->createMock(RequestedEntityFormBuilderServiceInterface::class);
$requestStack = $this->createMock(RequestStack::class);
$layerRepositoryFactoryService = $this->createMock(LayerRepositoryFactoryServiceInterface::class);
$secureRequestedRightChecker = $this->createMock(SecureRequestedRightCheckerInterface::class);
$this->actionService = new ActionService($this->requestedActionService, $secureRequestedRightChecker, $requestStack, $layerRepositoryFactoryService, $entityFormBuilderService, $entityManager);
$this->createSourceAction = new CreateSourceAction($this->actionService);
}
// public function testCreateWithGuestUser(): void
// {
// $this->requestedActionService->setReciever($reciever);
// $this->assertInstanceOf(PureSourceInterface::class, $this->createSourceAction->execute());
// }
public function testCreateWithGuestUser(): void
{
$this->assertInstanceOf(PureSourceInterface::class, $this->createSourceAction->execute());
}
// public function testCreatedWithKnownUser(): void
// {
// }
// {}
}

View File

@@ -7,7 +7,7 @@ use App\Domain\ActionManagement\ActionService;
use App\Domain\RequestManagement\Action\RequestedActionInterface;
use App\Domain\SecureManagement\SecureRequestedRightCheckerInterface;
use Doctrine\ORM\EntityManagerInterface;
use App\Domain\FormManagement\EntityFormBuilderServiceInterface;
use App\Domain\FormManagement\RequestedEntityFormBuilderServiceInterface;
use Symfony\Component\HttpFoundation\RequestStack;
use App\Domain\RepositoryManagement\LayerRepositoryFactoryServiceInterface;
use App\Domain\ActionManagement\ActionServiceInterface;
@@ -34,9 +34,9 @@ class ActionServiceTest extends TestCase
private $secureRequestedRightChecker;
/**
* @var EntityFormBuilderServiceInterface|MockObject
* @var RequestedEntityFormBuilderServiceInterface|MockObject
*/
private $entityFormBuilderService;
private $requestedEntityFormBuilderService;
/**
* @var RequestStack|MockObject
@@ -78,11 +78,11 @@ class ActionServiceTest extends TestCase
$this->requestedAction = $this->createMock(RequestedActionInterface::class);
$this->requestedAction->method('getRequestedEntity')->willReturn($this->requestedEntity);
$this->secureRequestedRightChecker = $this->createMock(SecureRequestedRightCheckerInterface::class);
$this->entityFormBuilderService = $this->createMock(EntityFormBuilderServiceInterface::class);
$this->requestedEntityFormBuilderService = $this->createMock(RequestedEntityFormBuilderServiceInterface::class);
$this->requestStack = $this->createMock(RequestStack::class);
$this->layerRepositoryFactoryService = $this->createMock(LayerRepositoryFactoryServiceInterface::class);
$this->entityManager = $this->createMock(EntityManagerInterface::class);
$this->actionService = new ActionService($this->requestedAction, $this->secureRequestedRightChecker, $this->requestStack, $this->layerRepositoryFactoryService, $this->entityFormBuilderService, $this->entityManager);
$this->actionService = new ActionService($this->requestedAction, $this->secureRequestedRightChecker, $this->requestStack, $this->layerRepositoryFactoryService, $this->requestedEntityFormBuilderService, $this->entityManager);
}
public function testIsRequestedActionSecure(): void
@@ -120,7 +120,7 @@ class ActionServiceTest extends TestCase
public function testGetForm(): void
{
$form = $this->createMock(FormBuilderInterface::class);
$this->entityFormBuilderService->method('create')->willReturn($form);
$this->requestedEntityFormBuilderService->method('create')->willReturn($form);
$result = $this->actionService->getForm();
$this->assertEquals($form, $result);
}

View File

@@ -3,10 +3,11 @@
namespace tests\Unit\Domain\FormManagement;
use PHPUnit\Framework\TestCase;
use App\Domain\FormManagement\EntityFormBuilderService;
use Symfony\Component\Form\FormBuilderInterface;
use App\Domain\FormManagement\FormClassNameServiceInterface;
use App\Entity\EntityInterface;
use App\Domain\RequestManagement\Entity\RequestedEntityInterface;
use App\Entity\Source\PureSource;
use App\Domain\FormManagement\RequestedEntityFormBuilderService;
/**
* @author kevinfrantz
@@ -22,10 +23,13 @@ class EntityFormBuilderServiceTest extends TestCase
$formBuilder = $this->createMock(FormBuilderInterface::class);
$formBuilder->method('create')->willReturn($expectedResult);
$formClassNameService = $this->createMock(FormClassNameServiceInterface::class);
$formClassNameService->method('getName')->willReturn('dummyNamespace');
$entityFormBuilderService = new EntityFormBuilderService($formBuilder, $formClassNameService);
$entity = $this->createMock(EntityInterface::class);
$result = $entityFormBuilderService->create($entity);
$formClassNameService->method('getClass')->willReturn('dummyNamespace');
$entityFormBuilderService = new RequestedEntityFormBuilderService($formBuilder, $formClassNameService);
$entity = new PureSource();
$entityRequested = $this->createMock(RequestedEntityInterface::class);
$entityRequested->method('hasIdentity')->willReturn(true);
$entityRequested->method('getEntity')->willReturn($entity);
$result = $entityFormBuilderService->create($entityRequested);
$this->assertEquals($expectedResult, $result);
}
}

View File

@@ -13,9 +13,9 @@ class FormClassNameServiceTest extends TestCase
{
public function testGetName()
{
$entity = new PureSource();
$entityClass = PureSource::class;
$formNameService = new FormClassNameService();
$entityForm = $formNameService->getName($entity);
$entityForm = $formNameService->getClass($entityClass);
$this->assertEquals('App\\Form\\Source\\PureSourceType', $entityForm);
}
}