Skip to content

Commit

Permalink
[TASK] Replace prophecy in EXT:form FormManagerControllerTest
Browse files Browse the repository at this point in the history
Resolves: #98977
Releases: main
Change-Id: Ib83b762e61483783695e04cdb2257f40ddf14b0a
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/76914
Tested-by: core-ci <typo3@b13.com>
Reviewed-by: Benni Mack <benni@typo3.org>
Tested-by: Oliver Klee <typo3-coding@oliverklee.de>
Tested-by: Stefan Bürk <stefan@buerk.tech>
Reviewed-by: Stefan Bürk <stefan@buerk.tech>
Tested-by: Benni Mack <benni@typo3.org>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
  • Loading branch information
derhansen authored and bmack committed Dec 3, 2022
1 parent 615fffa commit 5bdfc5c
Showing 1 changed file with 30 additions and 34 deletions.
Expand Up @@ -17,8 +17,6 @@

namespace TYPO3\CMS\Form\Tests\Unit\Controller;

use Prophecy\Argument;
use Prophecy\PhpUnit\ProphecyTrait;
use TYPO3\CMS\Core\Imaging\Icon;
use TYPO3\CMS\Core\Imaging\IconFactory;
use TYPO3\CMS\Core\Resource\Folder;
Expand All @@ -33,8 +31,6 @@

class FormManagerControllerTest extends UnitTestCase
{
use ProphecyTrait;

protected bool $resetSingletonInstances = true;

/**
Expand All @@ -46,34 +42,34 @@ public function getAccessibleFormStorageFoldersReturnsProcessedArray(): void
'dummy',
], [], '', false);

$formPersistenceManagerProphecy = $this->prophesize(FormPersistenceManager::class);
$formPersistenceManagerMock = $this->createMock(FormPersistenceManager::class);

$mockController->_set('formPersistenceManager', $formPersistenceManagerProphecy->reveal());
$mockController->_set('formPersistenceManager', $formPersistenceManagerMock);
$mockController->_set('formSettings', [
'persistenceManager' => [
'allowSaveToExtensionPaths' => true,
],
]);

$storageProphecy1 = $this->prophesize(ResourceStorage::class);
$storageProphecy2 = $this->prophesize(ResourceStorage::class);
$storageMock1 = $this->createMock(ResourceStorage::class);
$storageMock2 = $this->createMock(ResourceStorage::class);

$storageProphecy1->isPublic()->willReturn(true);
$storageProphecy2->isPublic()->willReturn(false);
$storageMock1->method('isPublic')->willReturn(true);
$storageMock2->method('isPublic')->willReturn(false);

$folder1Prophecy = $this->prophesize(Folder::class);
$folder1Prophecy->getPublicUrl()->willReturn('/fileadmin/user_upload/');
$folder1Prophecy->getStorage()->willReturn($storageProphecy1->reveal());
$folder1Mock = $this->createMock(Folder::class);
$folder1Mock->method('getPublicUrl')->willReturn('/fileadmin/user_upload/');
$folder1Mock->method('getStorage')->willReturn($storageMock1);

$folder2Prophecy = $this->prophesize(Folder::class);
$folder2Prophecy->getStorage()->willReturn($storageProphecy2->reveal());
$folder2Mock = $this->createMock(Folder::class);
$folder2Mock->method('getStorage')->willReturn($storageMock2);

$formPersistenceManagerProphecy->getAccessibleFormStorageFolders(Argument::cetera())->willReturn([
'1:/user_upload/' => $folder1Prophecy->reveal(),
'2:/forms/' => $folder2Prophecy->reveal(),
$formPersistenceManagerMock->method('getAccessibleFormStorageFolders')->willReturn([
'1:/user_upload/' => $folder1Mock,
'2:/forms/' => $folder2Mock,
]);

$formPersistenceManagerProphecy->getAccessibleExtensionFolders(Argument::cetera())->willReturn([
$formPersistenceManagerMock->method('getAccessibleExtensionFolders')->willReturn([
'EXT:form/Resources/Forms/' => '/some/path/form/Resources/Forms/',
'EXT:form_additions/Resources/Forms/' => '/some/path/form_additions/Resources/Forms/',
]);
Expand Down Expand Up @@ -163,13 +159,13 @@ public function getAvailableFormDefinitionsReturnsProcessedArray(): void
'dummy',
], [], '', false);

$formPersistenceManagerProphecy = $this->prophesize(FormPersistenceManager::class);
$mockController->_set('formPersistenceManager', $formPersistenceManagerProphecy->reveal());
$formPersistenceManagerMock = $this->createMock(FormPersistenceManager::class);
$mockController->_set('formPersistenceManager', $formPersistenceManagerMock);

$databaseService = $this->prophesize(DatabaseService::class);
$mockController->_set('databaseService', $databaseService->reveal());
$databaseService = $this->createMock(DatabaseService::class);
$mockController->_set('databaseService', $databaseService);

$formPersistenceManagerProphecy->listForms(Argument::cetera())->willReturn([
$formPersistenceManagerMock->method('listForms')->willReturn([
0 => [
'identifier' => 'ext-form-identifier',
'name' => 'some name',
Expand All @@ -181,11 +177,11 @@ public function getAvailableFormDefinitionsReturnsProcessedArray(): void
],
]);

$databaseService->getAllReferencesForFileUid(Argument::cetera())->willReturn([
$databaseService->method('getAllReferencesForFileUid')->willReturn([
0 => 0,
]);

$databaseService->getAllReferencesForPersistenceIdentifier(Argument::cetera())->willReturn([
$databaseService->method('getAllReferencesForPersistenceIdentifier')->willReturn([
'1:/user_uploads/someFormName.yaml' => 2,
]);

Expand Down Expand Up @@ -225,22 +221,22 @@ public function getProcessedReferencesRowsThrowsExceptionIfPersistenceIdentifier
*/
public function getProcessedReferencesRowsReturnsProcessedArray(): void
{
$iconFactoryProphecy = $this->prophesize(IconFactory::class);
GeneralUtility::addInstance(IconFactory::class, $iconFactoryProphecy->reveal());
$iconProphecy = $this->prophesize(Icon::class);
$iconFactoryProphecy->getIconForRecord(Argument::cetera())->willReturn($iconProphecy->reveal());
$iconProphecy->render()->shouldBeCalled()->willReturn('');
$iconFactoryMock = $this->createMock(IconFactory::class);
$iconMock = $this->createMock(Icon::class);
$iconMock->expects(self::atLeastOnce())->method('render')->willReturn('');
$iconFactoryMock->method('getIconForRecord')->withAnyParameters()->willReturn($iconMock);
GeneralUtility::addInstance(IconFactory::class, $iconFactoryMock);

$mockController = $this->getAccessibleMock(FormManagerController::class, [
'getModuleUrl',
'getRecord',
'getRecordTitle',
], [], '', false);

$databaseService = $this->prophesize(DatabaseService::class);
$mockController->_set('databaseService', $databaseService->reveal());
$databaseService = $this->createMock(DatabaseService::class);
$mockController->_set('databaseService', $databaseService);

$databaseService->getReferencesByPersistenceIdentifier(Argument::cetera())->willReturn([
$databaseService->method('getReferencesByPersistenceIdentifier')->with(self::anything())->willReturn([
0 => [
'tablename' => 'tt_content',
'recuid' => -1,
Expand Down

0 comments on commit 5bdfc5c

Please sign in to comment.