<?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); } }