infinito/application/symfony/tests/Unit/Domain/ActionManagement/Create/CreateSourceActionTest.php
2019-02-17 14:33:19 +01:00

52 lines
2.8 KiB
PHP

<?php
namespace tests\Unit\Domain\ActionManagement\Create;
use PHPUnit\Framework\TestCase;
use Infinito\Domain\ActionManagement\Create\CreateSourceAction;
use Symfony\Component\HttpFoundation\Request;
use Infinito\Entity\Source\PureSource;
use Infinito\Attribut\ClassAttributInterface;
use Infinito\Attribut\SlugAttributInterface;
use Infinito\Entity\Source\PureSourceInterface;
use Infinito\Domain\ActionManagement\ActionService;
use Doctrine\ORM\EntityManagerInterface;
use Infinito\Domain\RequestManagement\Action\RequestedActionServiceInterface;
use Infinito\Domain\SecureManagement\SecureRequestedRightCheckerServiceInterface;
use Symfony\Component\HttpFoundation\RequestStack;
use Infinito\Domain\RepositoryManagement\LayerRepositoryFactoryServiceInterface;
use Infinito\Domain\FormManagement\RequestedActionFormBuilderServiceInterface;
use Symfony\Component\Form\FormBuilderInterface;
use Infinito\Form\Source\PureSourceTypeInterface;
/**
* @author kevinfrantz
*/
class CreateSourceActionTest extends TestCase
{
public function testCreatePureSource(): void
{
$request = new Request();
$request->setMethod(Request::METHOD_POST);
$request->query->set(ClassAttributInterface::CLASS_ATTRIBUT_NAME, PureSource::class);
$request->request->set(SlugAttributInterface::SLUG_ATTRIBUT_NAME, 'randomname');
$requestedActionService = $this->createMock(RequestedActionServiceInterface::class);
$secureRequestedRightChecker = $this->createMock(SecureRequestedRightCheckerServiceInterface::class);
$entityManager = $this->createMock(EntityManagerInterface::class);
$pureSourceType = $this->createMock(PureSourceTypeInterface::class);
$pureSourceType->method('isValid')->willReturn(true);
$formBuilderInterface = $this->createMock(FormBuilderInterface::class);
$formBuilderInterface->method('getForm')->willReturn($pureSourceType);
// $formBuilderInterface->method('isValid')->willReturn(true);
$requestedActionFormBuilderService = $this->createMock(RequestedActionFormBuilderServiceInterface::class);
$requestedActionFormBuilderService->method('createByService')->willReturn($formBuilderInterface);
$requestStack = $this->createMock(RequestStack::class);
$requestStack->method('getCurrentRequest')->willReturn($request);
$layerRepositoryFactoryService = $this->createMock(LayerRepositoryFactoryServiceInterface::class);
$actionService = new ActionService($requestedActionService, $secureRequestedRightChecker, $requestStack, $layerRepositoryFactoryService, $requestedActionFormBuilderService, $entityManager);
$createSourceAction = new CreateSourceAction($actionService);
$result = $createSourceAction->execute();
$this->assertInstanceOf(PureSourceInterface::class, $result);
}
}