From ddd7d84d4e95cb3d2f93e5fd3108f097e6d2f2b0 Mon Sep 17 00:00:00 2001 From: Olha Livitchuk <77281282+olhalivitchuk@users.noreply.github.com> Date: Mon, 4 Nov 2024 15:07:47 +0100 Subject: [PATCH] FRW-8773 Added PHPUnit 11 support. (#11131) FRW-8773 Added PHP Unit 11 support. --- .../Business/DataImportFacadeTest.php | 2 +- .../CsvReader/CsvAdapterReaderTest.php | 2 +- .../DataImportStep/TouchAwareStepTest.php | 2 +- .../Model/DataImporterCollectionTest.php | 48 +++++++++++++++++-- ...BrokerElasticBatchTransactionAwareTest.php | 12 ++--- .../DataSetStepBrokerTransactionAwareTest.php | 10 ++-- 6 files changed, 60 insertions(+), 16 deletions(-) diff --git a/tests/SprykerTest/Zed/DataImport/Business/DataImportFacadeTest.php b/tests/SprykerTest/Zed/DataImport/Business/DataImportFacadeTest.php index 40842a3..99021de 100644 --- a/tests/SprykerTest/Zed/DataImport/Business/DataImportFacadeTest.php +++ b/tests/SprykerTest/Zed/DataImport/Business/DataImportFacadeTest.php @@ -131,7 +131,7 @@ private function getFacade(): DataImportFacade private function createDataImportBusinessFactoryMock(): DataImportBusinessFactory { $mockBuilder = $this->getMockBuilder(DataImportBusinessFactory::class) - ->setMethods(['createDataImporterCollection']); + ->onlyMethods(['createDataImporterCollection']); $dataImporterCollection = $this->tester->getFactory()->createDataImporterCollection(); $dataImporterCollection diff --git a/tests/SprykerTest/Zed/DataImport/Business/DataReader/CsvReader/CsvAdapterReaderTest.php b/tests/SprykerTest/Zed/DataImport/Business/DataReader/CsvReader/CsvAdapterReaderTest.php index a21415b..5f86fac 100644 --- a/tests/SprykerTest/Zed/DataImport/Business/DataReader/CsvReader/CsvAdapterReaderTest.php +++ b/tests/SprykerTest/Zed/DataImport/Business/DataReader/CsvReader/CsvAdapterReaderTest.php @@ -83,7 +83,7 @@ public function testThrowsExceptionWhenFileInvalid(): void protected function getConfigMock(): DataImportConfig { $configMock = $this->getMockBuilder(DataImportConfig::class) - ->setMethods(['isDataImportFromOtherSourceEnabled']) + ->onlyMethods(['isDataImportFromOtherSourceEnabled']) ->getMock(); $configMock->method('isDataImportFromOtherSourceEnabled') diff --git a/tests/SprykerTest/Zed/DataImport/Business/Model/DataImportStep/TouchAwareStepTest.php b/tests/SprykerTest/Zed/DataImport/Business/Model/DataImportStep/TouchAwareStepTest.php index 14846ec..649b801 100644 --- a/tests/SprykerTest/Zed/DataImport/Business/Model/DataImportStep/TouchAwareStepTest.php +++ b/tests/SprykerTest/Zed/DataImport/Business/Model/DataImportStep/TouchAwareStepTest.php @@ -147,7 +147,7 @@ public function testAfterExecuteTriggersTouchForEachSubTouchableWhenMainTouchabl private function getTouchFacadeMock(int $calledCount = 1, string $method = 'bulkTouchSetActive'): DataImportToTouchInterface { $mockBuilder = $this->getMockBuilder(DataImportToTouchInterface::class) - ->setMethods(['bulkTouchSetActive', 'bulkTouchSetInactive', 'bulkTouchSetDeleted']); + ->onlyMethods(['bulkTouchSetActive', 'bulkTouchSetInactive', 'bulkTouchSetDeleted']); $dataImportToTouchInterfaceMock = $mockBuilder->getMock(); $dataImportToTouchInterfaceMock->expects($this->exactly($calledCount))->method($method); diff --git a/tests/SprykerTest/Zed/DataImport/Business/Model/DataImporterCollectionTest.php b/tests/SprykerTest/Zed/DataImport/Business/Model/DataImporterCollectionTest.php index a6597c4..49dd8dd 100644 --- a/tests/SprykerTest/Zed/DataImport/Business/Model/DataImporterCollectionTest.php +++ b/tests/SprykerTest/Zed/DataImport/Business/Model/DataImporterCollectionTest.php @@ -94,6 +94,7 @@ public function testImportReturnsSuccessfulDataImportReportWhenAtLeastOneDataSet */ public function testImporterPluginCanBeAddedAfterSpecificDataImporter(): void { + //Arrange $dataImportCollectionMock = $this->getDataImportCollectionMock(); $dataImporterA = $this->tester->getDataImporterMock(static::DATA_IMPORTER_TYPE_A); $dataImporterB = $this->tester->getDataImporterMock(static::DATA_IMPORTER_TYPE_B); @@ -108,10 +109,23 @@ public function testImporterPluginCanBeAddedAfterSpecificDataImporter(): void $dataImporterPluginB, ]); + $expectedCallSequence = [ + $dataImporterA, + $dataImporterPluginA, + $dataImporterB, + $dataImporterPluginB, + ]; + $callIndex = 0; + + //Assert $dataImportCollectionMock->expects($this->exactly(4)) ->method('executeDataImporter') - ->withConsecutive([$dataImporterA], [$dataImporterPluginA], [$dataImporterB], [$dataImporterPluginB]); + ->willReturnCallback(function ($dataImporter) use (&$callIndex, $expectedCallSequence) { + $this->assertSame($expectedCallSequence[$callIndex], $dataImporter); + $callIndex++; + }); + //Act $dataImportCollectionMock->import(); } @@ -120,6 +134,7 @@ public function testImporterPluginCanBeAddedAfterSpecificDataImporter(): void */ public function testImporterPluginWillAddedAtTheEndIfAddAfterIsNotMatchingToAnyAppliedImporter(): void { + //Arrange $dataImportCollectionMock = $this->getDataImportCollectionMock(); $dataImporterA = $this->tester->getDataImporterMock(static::DATA_IMPORTER_TYPE_A); @@ -133,10 +148,22 @@ public function testImporterPluginWillAddedAtTheEndIfAddAfterIsNotMatchingToAnyA [$dataImporterPluginA, 'catface'], ]); + $expectedCallSequence = [ + $dataImporterA, + $dataImporterB, + $dataImporterPluginA, + ]; + $callIndex = 0; + + //Assert $dataImportCollectionMock->expects($this->exactly(3)) ->method('executeDataImporter') - ->withConsecutive([$dataImporterA], [$dataImporterB], [$dataImporterPluginA]); + ->willReturnCallback(function ($dataImporter) use (&$callIndex, $expectedCallSequence) { + $this->assertSame($expectedCallSequence[$callIndex], $dataImporter); + $callIndex++; + }); + //Act $dataImportCollectionMock->import(); } @@ -145,6 +172,7 @@ public function testImporterPluginWillAddedAtTheEndIfAddAfterIsNotMatchingToAnyA */ public function testAllImportersAreUsedWithFullGroupImport(): void { + //Arrange $dataImportCollectionMock = $this->getDataImportCollectionMock(); $dataImporter = $this->tester->getDataImporterMock(static::DATA_IMPORTER_TYPE_A); @@ -158,10 +186,22 @@ public function testAllImportersAreUsedWithFullGroupImport(): void $dataImporterPlugin, ]); + $expectedCallSequence = [ + $dataImporter, + $dataImporterGroupAware, + $dataImporterPlugin, + ]; + $callIndex = 0; + + //Assert $dataImportCollectionMock->expects($this->exactly(3)) ->method('executeDataImporter') - ->withConsecutive([$dataImporter], [$dataImporterGroupAware], [$dataImporterPlugin]); + ->willReturnCallback(function ($dataImporter) use (&$callIndex, $expectedCallSequence) { + $this->assertSame($expectedCallSequence[$callIndex], $dataImporter); + $callIndex++; + }); + //Act $dataImportCollectionMock->import(); } @@ -195,7 +235,7 @@ public function testImportersAreFilteredWithRespectToGroup(): void protected function getDataImportCollectionMock() { $dataImportCollectionMockBuilder = $this->getMockBuilder(DataImporterCollection::class) - ->setMethods(['executeDataImporter']); + ->onlyMethods(['executeDataImporter']); $dataImportCollectionMock = $dataImportCollectionMockBuilder->getMock(); diff --git a/tests/SprykerTest/Zed/DataImport/Business/Model/DataSet/DataSetStepBrokerElasticBatchTransactionAwareTest.php b/tests/SprykerTest/Zed/DataImport/Business/Model/DataSet/DataSetStepBrokerElasticBatchTransactionAwareTest.php index 428c782..fb7796c 100644 --- a/tests/SprykerTest/Zed/DataImport/Business/Model/DataSet/DataSetStepBrokerElasticBatchTransactionAwareTest.php +++ b/tests/SprykerTest/Zed/DataImport/Business/Model/DataSet/DataSetStepBrokerElasticBatchTransactionAwareTest.php @@ -38,7 +38,7 @@ class DataSetStepBrokerElasticBatchTransactionAwareTest extends Unit public function testExecuteOpensTransactionOnFirstCall(): void { //Arrange - $propelConnectionMock = $this->getPropelConnectionMock(1, 1, false, true); + $propelConnectionMock = $this->getPropelConnectionMock(1, 2, false, true, true); $this->tester->setDependency(DataImportDependencyProvider::PROPEL_CONNECTION, $propelConnectionMock); $dataSet = $this->createDataSet(); @@ -54,7 +54,7 @@ public function testExecuteOpensTransactionOnFirstCall(): void public function testTransactionNotOpenedWhenAlreadyInTransaction(): void { //Arrange - $propelConnectionMock = $this->getPropelConnectionMock(0, 1, true, true); + $propelConnectionMock = $this->getPropelConnectionMock(0, 2, true, true, true); $this->tester->setDependency(DataImportDependencyProvider::PROPEL_CONNECTION, $propelConnectionMock); $dataSet = $this->createDataSet(); @@ -70,7 +70,7 @@ public function testTransactionNotOpenedWhenAlreadyInTransaction(): void public function testThrowsExceptionIfNoOpenTransactionGiven(): void { //Arrange - $propelConnectionMock = $this->getPropelConnectionMock(1, 0, false); + $propelConnectionMock = $this->getPropelConnectionMock(1, 0, false, false, false); $this->tester->setDependency(DataImportDependencyProvider::PROPEL_CONNECTION, $propelConnectionMock); $dataSet = $this->createDataSet(); @@ -112,7 +112,7 @@ private function getPropelConnectionMock( ...$isInTransaction ): DataImportToPropelConnectionInterface { $mockBuilder = $this->getMockBuilder(DataImportToPropelConnectionInterface::class) - ->setMethods(['inTransaction', 'beginTransaction', 'endTransaction', 'rollBack']); + ->onlyMethods(['inTransaction', 'beginTransaction', 'endTransaction', 'rollBack']); $propelConnectionMock = $mockBuilder->getMock(); @@ -147,7 +147,7 @@ protected function createElasticBatchStepBroker(): DataSetStepBrokerElasticBatch protected function createDataImportStepMockWithExpectedExceptionOnExecute(): DataImportStepInterface { $dataImportStepMockBuilder = $this->getMockBuilder(DataImportStepInterface::class) - ->setMethods(['execute']); + ->onlyMethods(['execute']); $dataImportStepMock = $dataImportStepMockBuilder->getMock(); $dataImportStepMock->expects($this->once())->method('execute')->willThrowException(new DataSetBrokerTransactionFailedException(10)); $this->expectException(DataSetBrokerTransactionFailedException::class); @@ -160,7 +160,7 @@ protected function createDataImportStepMockWithExpectedExceptionOnExecute(): Dat */ protected function createPropelConnectionMockWithExpectedRollBack(): DataImportToPropelConnectionInterface { - $propelConnectionMock = $this->getPropelConnectionMock(1, 0, false); + $propelConnectionMock = $this->getPropelConnectionMock(1, 0, false, false, false); $propelConnectionMock->expects($this->exactly(1))->method('rollBack'); return $propelConnectionMock; diff --git a/tests/SprykerTest/Zed/DataImport/Business/Model/DataSet/DataSetStepBrokerTransactionAwareTest.php b/tests/SprykerTest/Zed/DataImport/Business/Model/DataSet/DataSetStepBrokerTransactionAwareTest.php index 8376ac4..3b165da 100644 --- a/tests/SprykerTest/Zed/DataImport/Business/Model/DataSet/DataSetStepBrokerTransactionAwareTest.php +++ b/tests/SprykerTest/Zed/DataImport/Business/Model/DataSet/DataSetStepBrokerTransactionAwareTest.php @@ -133,13 +133,17 @@ public function testTransactionIsAlwaysClosedWhenThereIsAnOpenedOne(): void */ public function testThrowsExceptionIfNoOpenTransactionGiven(): void { - $propelConnectionMock = $this->getPropelConnectionMock(1, 0, false); + //Arrange + $propelConnectionMock = $this->getPropelConnectionMock(1, 0, false, false, false); $this->tester->setDependency(DataImportDependencyProvider::PROPEL_CONNECTION, $propelConnectionMock); $dataSet = $this->tester->getFactory()->createDataSet(); $dataSetStepBrokerTransactionAware = $this->tester->getFactory()->createTransactionAwareDataSetStepBroker(); + //Assert $this->expectException(TransactionException::class); + + //Act $dataSetStepBrokerTransactionAware->execute($dataSet); } @@ -172,7 +176,7 @@ private function getPropelConnectionMock( ...$isInTransaction ): DataImportToPropelConnectionInterface { $mockBuilder = $this->getMockBuilder(DataImportToPropelConnectionInterface::class) - ->setMethods(['inTransaction', 'beginTransaction', 'endTransaction', 'rollBack']); + ->onlyMethods(['inTransaction', 'beginTransaction', 'endTransaction', 'rollBack']); $propelConnectionMock = $mockBuilder->getMock(); @@ -189,7 +193,7 @@ private function getPropelConnectionMock( protected function createDataImportStepMockWithExpectedExceptionOnExecute(): DataImportStepInterface { $dataImportStepMockBuilder = $this->getMockBuilder(DataImportStepInterface::class) - ->setMethods(['execute']); + ->onlyMethods(['execute']); $dataImportStepMock = $dataImportStepMockBuilder->getMock(); $dataImportStepMock->expects($this->once())->method('execute')->willThrowException(new DataSetBrokerTransactionFailedException(10)); $this->expectException(DataSetBrokerTransactionFailedException::class);