Skip to content

Commit

Permalink
FRW-8773 Added PHPUnit 11 support. (#11131)
Browse files Browse the repository at this point in the history
FRW-8773 Added PHP Unit 11 support.
  • Loading branch information
olhalivitchuk authored Nov 4, 2024
1 parent eb1b8a1 commit ddd7d84
Show file tree
Hide file tree
Showing 6 changed files with 60 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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();
}

Expand All @@ -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);
Expand All @@ -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();
}

Expand All @@ -145,6 +172,7 @@ public function testImporterPluginWillAddedAtTheEndIfAddAfterIsNotMatchingToAnyA
*/
public function testAllImportersAreUsedWithFullGroupImport(): void
{
//Arrange
$dataImportCollectionMock = $this->getDataImportCollectionMock();

$dataImporter = $this->tester->getDataImporterMock(static::DATA_IMPORTER_TYPE_A);
Expand All @@ -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();
}

Expand Down Expand Up @@ -195,7 +235,7 @@ public function testImportersAreFilteredWithRespectToGroup(): void
protected function getDataImportCollectionMock()
{
$dataImportCollectionMockBuilder = $this->getMockBuilder(DataImporterCollection::class)
->setMethods(['executeDataImporter']);
->onlyMethods(['executeDataImporter']);

$dataImportCollectionMock = $dataImportCollectionMockBuilder->getMock();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand All @@ -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();
Expand All @@ -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();
Expand Down Expand Up @@ -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();

Expand Down Expand Up @@ -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);
Expand All @@ -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;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down Expand Up @@ -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();

Expand All @@ -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);
Expand Down

0 comments on commit ddd7d84

Please sign in to comment.