From fedbd3eeefcbc97234edd19a3d95096ee33f651f Mon Sep 17 00:00:00 2001
From: Nikita Hovratov <nikita.h@live.de>
Date: Sat, 12 Nov 2022 18:17:48 +0100
Subject: [PATCH] [TASK] Replace prophecy in EXT:core FlexFormToolsTest
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Resolves: #98753
Releases: main
Change-Id: Ibd1b655f8d7563165683e4d8307c9445ac9d3398
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/76574
Tested-by: core-ci <typo3@b13.com>
Tested-by: Oliver Klee <typo3-coding@oliverklee.de>
Tested-by: Stefan Bürk <stefan@buerk.tech>
Reviewed-by: Oliver Klee <typo3-coding@oliverklee.de>
Reviewed-by: Stefan Bürk <stefan@buerk.tech>
---
 Build/phpstan/phpstan-baseline.neon           |  5 ---
 .../FlexForm/FlexFormToolsTest.php            | 43 +++----------------
 2 files changed, 5 insertions(+), 43 deletions(-)

diff --git a/Build/phpstan/phpstan-baseline.neon b/Build/phpstan/phpstan-baseline.neon
index a0ea097d33f4..81605ce7f33a 100644
--- a/Build/phpstan/phpstan-baseline.neon
+++ b/Build/phpstan/phpstan-baseline.neon
@@ -1430,11 +1430,6 @@ parameters:
 			count: 1
 			path: ../../typo3/sysext/core/Tests/Unit/Cache/Frontend/PhpFrontendTest.php
 
-		-
-			message: "#^Result of method TYPO3\\\\CMS\\\\Core\\\\Configuration\\\\FlexForm\\\\FlexFormTools\\:\\:traverseFlexFormXMLData_recurse\\(\\) \\(void\\) is used\\.$#"
-			count: 2
-			path: ../../typo3/sysext/core/Tests/Unit/Configuration/FlexForm/FlexFormToolsTest.php
-
 		-
 			message: "#^Parameter \\#2 \\$coreCache of class TYPO3\\\\CMS\\\\Core\\\\ExpressionLanguage\\\\ProviderConfigurationLoader constructor expects TYPO3\\\\CMS\\\\Core\\\\Cache\\\\Frontend\\\\PhpFrontend, TYPO3\\\\CMS\\\\Core\\\\Cache\\\\Frontend\\\\FrontendInterface given\\.$#"
 			count: 1
diff --git a/typo3/sysext/core/Tests/Unit/Configuration/FlexForm/FlexFormToolsTest.php b/typo3/sysext/core/Tests/Unit/Configuration/FlexForm/FlexFormToolsTest.php
index 2d0e05b73807..4da7631d9f67 100644
--- a/typo3/sysext/core/Tests/Unit/Configuration/FlexForm/FlexFormToolsTest.php
+++ b/typo3/sysext/core/Tests/Unit/Configuration/FlexForm/FlexFormToolsTest.php
@@ -17,44 +17,13 @@ declare(strict_types=1);
 
 namespace TYPO3\CMS\Core\Tests\Unit\Configuration\FlexForm;
 
-use Prophecy\Argument;
-use Prophecy\PhpUnit\ProphecyTrait;
-use Psr\EventDispatcher\EventDispatcherInterface;
-use TYPO3\CMS\Core\Cache\CacheManager;
-use TYPO3\CMS\Core\Cache\Frontend\FrontendInterface;
 use TYPO3\CMS\Core\Configuration\FlexForm\FlexFormTools;
+use TYPO3\CMS\Core\EventDispatcher\NoopEventDispatcher;
 use TYPO3\CMS\Core\Tests\Unit\Fixtures\EventDispatcher\MockEventDispatcher;
-use TYPO3\CMS\Core\Utility\GeneralUtility;
 use TYPO3\TestingFramework\Core\Unit\UnitTestCase;
 
 class FlexFormToolsTest extends UnitTestCase
 {
-    use ProphecyTrait;
-
-    protected bool $resetSingletonInstances = true;
-
-    /**
-     * @var EventDispatcherInterface
-     */
-    protected object $nullDispatcher;
-
-    /**
-     * Set up
-     */
-    public function setUp(): void
-    {
-        parent::setUp();
-        // Underlying static GeneralUtility::xml2array() uses caches that have to be mocked here
-        $cacheManagerProphecy = $this->prophesize(CacheManager::class);
-        $cacheProphecy = $this->prophesize(FrontendInterface::class);
-        $cacheManagerProphecy->getCache('runtime')->willReturn($cacheProphecy->reveal());
-        $cacheProphecy->get(Argument::cetera())->willReturn(false);
-        $cacheProphecy->set(Argument::cetera())->willReturn(false);
-        GeneralUtility::setSingletonInstance(CacheManager::class, $cacheManagerProphecy->reveal());
-
-        $this->nullDispatcher = new MockEventDispatcher();
-    }
-
     /**
      * @test
      */
@@ -71,7 +40,7 @@ class FlexFormToolsTest extends UnitTestCase
         ];
         $editData = [];
         $subject = $this->getMockBuilder(FlexFormTools::class)
-            ->setConstructorArgs([$this->nullDispatcher])
+            ->setConstructorArgs([new MockEventDispatcher()])
             ->onlyMethods(['executeCallBackMethod'])
             ->getMock();
         $subject->expects(self::never())->method('executeCallBackMethod');
@@ -99,10 +68,8 @@ class FlexFormToolsTest extends UnitTestCase
             ],
         ];
         $editData2 = [];
-        $subject = $this->createMock(FlexFormTools::class);
-        self::assertEquals(
-            $subject->traverseFlexFormXMLData_recurse($dataStruct, $editData, $pA),
-            $subject->traverseFlexFormXMLData_recurse($dataStruct, $editData2, $pA)
-        );
+        $flexFormTools = new FlexFormTools(new NoopEventDispatcher());
+        $flexFormTools->traverseFlexFormXMLData_recurse($dataStruct, $editData, $pA);
+        $flexFormTools->traverseFlexFormXMLData_recurse($dataStruct, $editData2, $pA);
     }
 }
-- 
GitLab