From 2bdcf3919ebaef1776744a3557e45beb9cfd99b9 Mon Sep 17 00:00:00 2001 From: Yuri Kuznetsov Date: Sat, 20 Feb 2021 10:55:12 +0200 Subject: [PATCH] fix tests --- tests/unit/Espo/Core/HookManagerTest.php | 2 +- .../AccessControl/FilterFactoryTest.php | 73 ++++++--------- .../FilterResolverFactoryTest.php | 2 +- .../Core/Select/AccessControl/FiltersTest.php | 49 ++++++----- .../Appliers/BoolFilterListApplierTest.php | 25 +++--- .../Select/Factory/BoolFilterFactoryTest.php | 25 ++---- .../Factory/PrimaryFilterFactoryTest.php | 25 ++---- .../Select/Order/ItemConverterFactoryTest.php | 60 ++++--------- .../FullTextSearchDataComposerFactoryTest.php | 3 +- .../Core/Select/Where/CheckerFactoryTest.php | 2 +- .../Select/Where/ConverterFactoryTest.php | 88 +++++++------------ .../Select/Where/ItemConverterFactoryTest.php | 12 +-- .../Core/Utils/Config/ConfigWriterTest.php | 22 +++-- .../Utils/{PeloadTest.php => PreloadTest.php} | 0 14 files changed, 152 insertions(+), 236 deletions(-) rename tests/unit/Espo/Core/Utils/{PeloadTest.php => PreloadTest.php} (100%) diff --git a/tests/unit/Espo/Core/HookManagerTest.php b/tests/unit/Espo/Core/HookManagerTest.php index 3a07d87eaf..d3ed0b3356 100644 --- a/tests/unit/Espo/Core/HookManagerTest.php +++ b/tests/unit/Espo/Core/HookManagerTest.php @@ -366,7 +366,7 @@ class HookManagerTest extends \PHPUnit\Framework\TestCase ->will($this->returnValue(false)); $this->metadata - ->expects($this->at(0)) + ->expects($this->once()) ->method('getModuleList') ->will($this->returnValue(array( ))); diff --git a/tests/unit/Espo/Core/Select/AccessControl/FilterFactoryTest.php b/tests/unit/Espo/Core/Select/AccessControl/FilterFactoryTest.php index 541fba0d5f..eb11c310c3 100644 --- a/tests/unit/Espo/Core/Select/AccessControl/FilterFactoryTest.php +++ b/tests/unit/Espo/Core/Select/AccessControl/FilterFactoryTest.php @@ -72,55 +72,38 @@ class FilterFactoryTest extends \PHPUnit\Framework\TestCase $object = $this->createMock($defaultClassName); - $this->injectableFactory - ->expects($this->at(0)) - ->method('createWith') - ->with( - FieldHelper::class, - [ - 'entityType' => $entityType, - ] - ) - ->willReturn($this->fieldHelper); - $this->metadata - ->expects($this->at(0)) + ->expects($this->any()) ->method('get') - ->with([ - 'selectDefs', - $entityType, - 'accessControlFilterClassNameMap', - $name, - ]) - ->willReturn($className); - - $this->metadata - ->expects($this->at(1)) - ->method('get') - ->with([ - 'selectDefs', - $entityType, - 'accessControlFilterClassNameMap', - $name, - ]) - ->willReturn($className); + ->willReturnMap([ + [['selectDefs', $entityType, 'accessControlFilterClassNameMap', $name], null, $className], + ]); $className = $className ?? $defaultClassName; $object = $this->createMock($defaultClassName); $this->injectableFactory - ->expects($this->at(1)) + ->expects($this->exactly(2)) ->method('createWith') - ->with( - $className, + ->willReturnMap([ [ - 'entityType' => $entityType, - 'user' => $this->user, - 'fieldHelper' => $this->fieldHelper, - ] - ) - ->willReturn($object); + FieldHelper::class, + [ + 'entityType' => $entityType, + ], + $this->fieldHelper, + ], + [ + $className, + [ + 'entityType' => $entityType, + 'user' => $this->user, + 'fieldHelper' => $this->fieldHelper, + ], + $object, + ], + ]); $resultObject = $this->factory->create( $entityType, @@ -135,15 +118,11 @@ class FilterFactoryTest extends \PHPUnit\Framework\TestCase ); $this->metadata - ->expects($this->at(0)) + ->expects($this->any()) ->method('get') - ->with([ - 'selectDefs', - $entityType, - 'accessControlFilterClassNameMap', - 'badName', - ]) - ->willReturn(null); + ->willReturnMap([ + [['selectDefs', $entityType, 'accessControlFilterClassNameMap', 'badName'], null, null], + ]); $this->assertFalse( $this->factory->has($entityType, 'badName') diff --git a/tests/unit/Espo/Core/Select/AccessControl/FilterResolverFactoryTest.php b/tests/unit/Espo/Core/Select/AccessControl/FilterResolverFactoryTest.php index 9b3a34b77f..ae6ee2c63a 100644 --- a/tests/unit/Espo/Core/Select/AccessControl/FilterResolverFactoryTest.php +++ b/tests/unit/Espo/Core/Select/AccessControl/FilterResolverFactoryTest.php @@ -84,7 +84,7 @@ class FilterResolverFactoryTest extends \PHPUnit\Framework\TestCase $object = $this->createMock($defaultClassName); $this->metadata - ->expects($this->at(0)) + ->expects($this->once()) ->method('get') ->with([ 'selectDefs', $entityType, 'accessControlFilterResolverClassName' diff --git a/tests/unit/Espo/Core/Select/AccessControl/FiltersTest.php b/tests/unit/Espo/Core/Select/AccessControl/FiltersTest.php index 1e688a8b57..93e6b6265b 100644 --- a/tests/unit/Espo/Core/Select/AccessControl/FiltersTest.php +++ b/tests/unit/Espo/Core/Select/AccessControl/FiltersTest.php @@ -155,14 +155,13 @@ class FiltersTest extends \PHPUnit\Framework\TestCase ->method('distinct'); $this->queryBuilder - ->expects($this->at(1)) + ->expects($this->exactly(2)) ->method('leftJoin') - ->with('teams', 'teamsAccess'); - - $this->queryBuilder - ->expects($this->at(2)) - ->method('leftJoin') - ->with('assignedUsers', 'assignedUsersAccess'); + ->withConsecutive( + ['teams', 'teamsAccess'], + ['assignedUsers', 'assignedUsersAccess'], + ) + ->willReturn($this->queryBuilder); $this->queryBuilder ->expects($this->once()) @@ -207,9 +206,11 @@ class FiltersTest extends \PHPUnit\Framework\TestCase ->method('distinct'); $this->queryBuilder - ->expects($this->at(1)) + ->expects($this->exactly(1)) ->method('leftJoin') - ->with('teams', 'teamsAccess'); + ->withConsecutive( + ['teams', 'teamsAccess'], + ); $this->queryBuilder ->expects($this->once()) @@ -219,7 +220,8 @@ class FiltersTest extends \PHPUnit\Framework\TestCase 'teamsAccess.id' => ['team-id'], 'assignedUserId' => $this->user->id, ], - ]); + ]) + ->willReturn($this->queryBuilder); $filter->apply($this->queryBuilder); } @@ -240,9 +242,12 @@ class FiltersTest extends \PHPUnit\Framework\TestCase ->method('distinct'); $this->queryBuilder - ->expects($this->at(1)) + ->expects($this->exactly(1)) ->method('leftJoin') - ->with('teams', 'teamsAccess'); + ->withConsecutive( + ['teams', 'teamsAccess'], + ) + ->willReturn($this->queryBuilder); $this->queryBuilder ->expects($this->once()) @@ -273,9 +278,12 @@ class FiltersTest extends \PHPUnit\Framework\TestCase ->method('distinct'); $this->queryBuilder - ->expects($this->at(1)) + ->expects($this->exactly(1)) ->method('leftJoin') - ->with('teams', 'teamsAccess'); + ->withConsecutive( + ['teams', 'teamsAccess'], + ) + ->willReturn($this->queryBuilder); $this->queryBuilder ->expects($this->once()) @@ -320,15 +328,12 @@ class FiltersTest extends \PHPUnit\Framework\TestCase ->willReturn($this->queryBuilder); $this->queryBuilder - ->expects($this->at(0)) + ->expects($this->exactly(2)) ->method('leftJoin') - ->with('accounts', 'accountsAccess') - ->willReturn($this->queryBuilder); - - $this->queryBuilder - ->expects($this->at(2)) - ->method('leftJoin') - ->with('contacts', 'contactsAccess') + ->withConsecutive( + ['accounts', 'accountsAccess'], + ['contacts', 'contactsAccess'], + ) ->willReturn($this->queryBuilder); $this->queryBuilder diff --git a/tests/unit/Espo/Core/Select/Appliers/BoolFilterListApplierTest.php b/tests/unit/Espo/Core/Select/Appliers/BoolFilterListApplierTest.php index 3382c38d01..919314ec30 100644 --- a/tests/unit/Espo/Core/Select/Appliers/BoolFilterListApplierTest.php +++ b/tests/unit/Espo/Core/Select/Appliers/BoolFilterListApplierTest.php @@ -123,23 +123,28 @@ class BoolFilterListApplierTest extends \PHPUnit\Framework\TestCase protected function initApplierTest(array $filterNameList, array $filterList, array $hasList) { + $hasMap = []; + $createMap = []; + foreach ($filterNameList as $i => $filterName) { - $this->boolFilterFactory - ->expects($this->at($i * 2)) - ->method('has') - ->with($this->entityType, $filterName) - ->willReturn($hasList[$i]); + $hasMap[] = [$this->entityType, $filterName, $hasList[$i]]; if (!$hasList[$i]) { continue; } - $this->boolFilterFactory - ->expects($this->at($i * 2 + 1)) - ->method('create') - ->with($this->entityType, $this->user, $filterName) - ->willReturn($filterList[$i]); + $createMap[] = [$this->entityType, $this->user, $filterName, $filterList[$i]]; } + + $this->boolFilterFactory + ->expects($this->any()) + ->method('has') + ->willReturnMap($hasMap); + + $this->boolFilterFactory + ->expects($this->any()) + ->method('create') + ->willReturnMap($createMap); } protected function createFilterMock(array $rawWhereClause) : BoolFilter diff --git a/tests/unit/Espo/Core/Select/Factory/BoolFilterFactoryTest.php b/tests/unit/Espo/Core/Select/Factory/BoolFilterFactoryTest.php index b540f6db46..ea02e8f533 100644 --- a/tests/unit/Espo/Core/Select/Factory/BoolFilterFactoryTest.php +++ b/tests/unit/Espo/Core/Select/Factory/BoolFilterFactoryTest.php @@ -69,26 +69,11 @@ class BoolFilterFactoryTest extends \PHPUnit\Framework\TestCase $entityType = 'Test'; $this->metadata - ->expects($this->at(0)) + ->expects($this->any()) ->method('get') - ->with([ - 'selectDefs', - $entityType, - 'boolFilterClassNameMap', - $name, - ]) - ->willReturn($className); - - $this->metadata - ->expects($this->at(1)) - ->method('get') - ->with([ - 'selectDefs', - $entityType, - 'boolFilterClassNameMap', - $name, - ]) - ->willReturn($className); + ->willReturnMap([ + [['selectDefs', $entityType, 'boolFilterClassNameMap', $name], null, $className], + ]); $className = $className ?? $defaultClassName; @@ -118,7 +103,7 @@ class BoolFilterFactoryTest extends \PHPUnit\Framework\TestCase ); $this->metadata - ->expects($this->at(0)) + ->expects($this->once()) ->method('get') ->with([ 'selectDefs', diff --git a/tests/unit/Espo/Core/Select/Factory/PrimaryFilterFactoryTest.php b/tests/unit/Espo/Core/Select/Factory/PrimaryFilterFactoryTest.php index 371672c7c8..9d22963735 100644 --- a/tests/unit/Espo/Core/Select/Factory/PrimaryFilterFactoryTest.php +++ b/tests/unit/Espo/Core/Select/Factory/PrimaryFilterFactoryTest.php @@ -69,26 +69,11 @@ class PrimaryFilterFactoryTest extends \PHPUnit\Framework\TestCase $entityType = 'Test'; $this->metadata - ->expects($this->at(0)) + ->expects($this->any()) ->method('get') - ->with([ - 'selectDefs', - $entityType, - 'primaryFilterClassNameMap', - $name, - ]) - ->willReturn($className); - - $this->metadata - ->expects($this->at(1)) - ->method('get') - ->with([ - 'selectDefs', - $entityType, - 'primaryFilterClassNameMap', - $name, - ]) - ->willReturn($className); + ->willReturnMap([ + [['selectDefs', $entityType, 'primaryFilterClassNameMap', $name], null, $className], + ]); $className = $className ?? $defaultClassName; @@ -118,7 +103,7 @@ class PrimaryFilterFactoryTest extends \PHPUnit\Framework\TestCase ); $this->metadata - ->expects($this->at(0)) + ->expects($this->once()) ->method('get') ->with([ 'selectDefs', diff --git a/tests/unit/Espo/Core/Select/Order/ItemConverterFactoryTest.php b/tests/unit/Espo/Core/Select/Order/ItemConverterFactoryTest.php index fec00de89f..5e0b0bf2c4 100644 --- a/tests/unit/Espo/Core/Select/Order/ItemConverterFactoryTest.php +++ b/tests/unit/Espo/Core/Select/Order/ItemConverterFactoryTest.php @@ -76,30 +76,23 @@ class ItemConverterFactoryTest extends \PHPUnit\Framework\TestCase $className = $className1 ?? $className2 ?? null; - $this->metadata - ->expects($this->at(0)) - ->method('get') - ->with([ - 'selectDefs', $entityType, 'orderItemConverterClassNameMap', $field - ]) - ->willReturn($className1); - if (!$className1) { $this->metadata - ->expects($this->at(1)) + ->expects($this->any()) ->method('get') - ->with([ - 'entityDefs', $entityType, 'fields', $field, 'type' - ]) - ->willReturn($type); - + ->willReturnMap([ + [['selectDefs', $entityType, 'orderItemConverterClassNameMap', $field], null, $className1], + [['entityDefs', $entityType, 'fields', $field, 'type'], null, $type], + [['app', 'select', 'orderItemConverterClassNameMap', $type], null, $className2], + ]); + } + else { $this->metadata - ->expects($this->at(2)) + ->expects($this->any()) ->method('get') - ->with([ - 'app', 'select', 'orderItemConverterClassNameMap', $type - ]) - ->willReturn($className2); + ->willReturnMap([ + [['selectDefs', $entityType, 'orderItemConverterClassNameMap', $field], null, $className1], + ]); } if ($testHas) { @@ -113,7 +106,7 @@ class ItemConverterFactoryTest extends \PHPUnit\Framework\TestCase $object = $this->createMock($className); $this->injectableFactory - ->expects($this->at(0)) + ->expects($this->once()) ->method('createWith') ->with( $className, @@ -140,28 +133,13 @@ class ItemConverterFactoryTest extends \PHPUnit\Framework\TestCase $type = 'varchar'; $this->metadata - ->expects($this->at(0)) + ->expects($this->any()) ->method('get') - ->with([ - 'selectDefs', $entityType, 'orderItemConverterClassNameMap', 'badName' - ]) - ->willReturn(null); - - $this->metadata - ->expects($this->at(1)) - ->method('get') - ->with([ - 'entityDefs', $entityType, 'fields', 'badName', 'type' - ]) - ->willReturn($type); - - $this->metadata - ->expects($this->at(2)) - ->method('get') - ->with([ - 'app', 'select', 'orderItemConverterClassNameMap', $type - ]) - ->willReturn(null); + ->willReturnMap([ + [['selectDefs', $entityType, 'orderItemConverterClassNameMap', 'badName'], null, null], + [['entityDefs', $entityType, 'fields', 'badName', 'type'], null, $type], + [['app', 'select', 'orderItemConverterClassNameMap', $type], null, null], + ]); $this->assertFalse( $this->factory->has($entityType, 'badName') diff --git a/tests/unit/Espo/Core/Select/Text/FullTextSearchDataComposerFactoryTest.php b/tests/unit/Espo/Core/Select/Text/FullTextSearchDataComposerFactoryTest.php index 0ef34cc9b6..cd57dc3ab1 100644 --- a/tests/unit/Espo/Core/Select/Text/FullTextSearchDataComposerFactoryTest.php +++ b/tests/unit/Espo/Core/Select/Text/FullTextSearchDataComposerFactoryTest.php @@ -36,7 +36,6 @@ use Espo\Core\{ InjectableFactory, }; - class FullTextSearchDataComposerFactoryTest extends \PHPUnit\Framework\TestCase { protected function setUp() : void @@ -69,7 +68,7 @@ class FullTextSearchDataComposerFactoryTest extends \PHPUnit\Framework\TestCase $object = $this->createMock($defaultClassName); $this->metadata - ->expects($this->at(0)) + ->expects($this->once()) ->method('get') ->with([ 'selectDefs', $entityType, 'fullTextSearchDataComposerClassName' diff --git a/tests/unit/Espo/Core/Select/Where/CheckerFactoryTest.php b/tests/unit/Espo/Core/Select/Where/CheckerFactoryTest.php index 5550253a2f..3b7872fd21 100644 --- a/tests/unit/Espo/Core/Select/Where/CheckerFactoryTest.php +++ b/tests/unit/Espo/Core/Select/Where/CheckerFactoryTest.php @@ -74,7 +74,7 @@ class CheckerFactoryTest extends \PHPUnit\Framework\TestCase $object = $this->createMock(Checker::class); $this->injectableFactory - ->expects($this->at(0)) + ->expects($this->once()) ->method('createWith') ->with( Checker::class, diff --git a/tests/unit/Espo/Core/Select/Where/ConverterFactoryTest.php b/tests/unit/Espo/Core/Select/Where/ConverterFactoryTest.php index aa712e054a..8fc0330e78 100644 --- a/tests/unit/Espo/Core/Select/Where/ConverterFactoryTest.php +++ b/tests/unit/Espo/Core/Select/Where/ConverterFactoryTest.php @@ -74,73 +74,53 @@ class ConverterFactoryTest extends \PHPUnit\Framework\TestCase $entityType = 'Test'; $this->metadata - ->expects($this->at(0)) + ->expects($this->any()) ->method('get') - ->with([ - 'selectDefs', $entityType, 'whereDateTimeItemTransformerClassName' - ]) - ->willReturn($className1); - - $this->metadata - ->expects($this->at(1)) - ->method('get') - ->with([ - 'selectDefs', $entityType, 'whereItemConverterClassName' - ]) - ->willReturn($className2); - - $this->metadata - ->expects($this->at(2)) - ->method('get') - ->with([ - 'selectDefs', $entityType, 'whereConverterClassName' - ]) - ->willReturn($className3); + ->willReturnMap([ + [['selectDefs', $entityType, 'whereDateTimeItemTransformerClassName'], null, $className1], + [['selectDefs', $entityType, 'whereItemConverterClassName'], null, $className2], + [['selectDefs', $entityType, 'whereConverterClassName'], null, $className3], + ]); $className1 = $className1 ?? DateTimeItemTransformer::class; $className2 = $className2 ?? ItemGeneralConverter::class; $className3 = $className3 ?? Converter::class; - $this->injectableFactory - ->expects($this->at(0)) - ->method('createWith') - ->with( - $className1, - [ - 'entityType' => $entityType, - 'user' => $this->user, - ] - ) - ->willReturn($this->dateTimeItemTransformer); - - $this->injectableFactory - ->expects($this->at(1)) - ->method('createWith') - ->with( - $className2, - [ - 'entityType' => $entityType, - 'user' => $this->user, - 'dateTimeItemTransformer' => $this->dateTimeItemTransformer, - ] - ) - ->willReturn($this->itemConverter); - $object = $this->createMock(Converter::class); $this->injectableFactory - ->expects($this->at(2)) + ->expects($this->exactly(3)) ->method('createWith') - ->with( - $className3, + ->withConsecutive( [ - 'entityType' => $entityType, - 'user' => $this->user, - 'itemConverter' => $this->itemConverter, - + $className1, + [ + 'entityType' => $entityType, + 'user' => $this->user, + ] + ], + [ + $className2, + [ + 'entityType' => $entityType, + 'user' => $this->user, + 'dateTimeItemTransformer' => $this->dateTimeItemTransformer, + ] + ], + [ + $className3, + [ + 'entityType' => $entityType, + 'user' => $this->user, + 'itemConverter' => $this->itemConverter, + ] ] ) - ->willReturn($object); + ->willReturnOnConsecutiveCalls( + $this->dateTimeItemTransformer, + $this->itemConverter, + $object + ); $resultObject = $this->factory->create($entityType, $this->user); diff --git a/tests/unit/Espo/Core/Select/Where/ItemConverterFactoryTest.php b/tests/unit/Espo/Core/Select/Where/ItemConverterFactoryTest.php index 0b87066342..0339fdc668 100644 --- a/tests/unit/Espo/Core/Select/Where/ItemConverterFactoryTest.php +++ b/tests/unit/Espo/Core/Select/Where/ItemConverterFactoryTest.php @@ -43,6 +43,8 @@ use tests\unit\testClasses\Core\Select\Where\ItemConverters\TestConverter; class ItemConverterFactoryTest extends \PHPUnit\Framework\TestCase { + private $metadata; + protected function setUp() : void { $this->injectableFactory = $this->createMock(InjectableFactory::class); @@ -64,7 +66,7 @@ class ItemConverterFactoryTest extends \PHPUnit\Framework\TestCase public function testHasFalseForType() { $this->metadata - ->expects($this->at(0)) + ->expects($this->once()) ->method('get') ->with([ 'app', 'select', 'whereItemConverterClassNameMap', 'someType' @@ -89,7 +91,7 @@ class ItemConverterFactoryTest extends \PHPUnit\Framework\TestCase $type = 'someType'; $this->metadata - ->expects($this->at(0)) + ->expects($this->any()) ->method('get') ->with([ 'app', 'select', 'whereItemConverterClassNameMap', $type @@ -107,7 +109,7 @@ class ItemConverterFactoryTest extends \PHPUnit\Framework\TestCase $object = $this->createMock($className); $this->injectableFactory - ->expects($this->at(0)) + ->expects($this->once()) ->method('createWith') ->with( $className, @@ -136,7 +138,7 @@ class ItemConverterFactoryTest extends \PHPUnit\Framework\TestCase $attribute = 'test'; $this->metadata - ->expects($this->at(0)) + ->expects($this->any()) ->method('get') ->with([ 'selectDefs', $entityType, 'whereItemConverterClassNameMap', $attribute . '_' . $type @@ -158,7 +160,7 @@ class ItemConverterFactoryTest extends \PHPUnit\Framework\TestCase $object = $this->createMock($className); $this->injectableFactory - ->expects($this->at(0)) + ->expects($this->once()) ->method('createWith') ->with( $className, diff --git a/tests/unit/Espo/Core/Utils/Config/ConfigWriterTest.php b/tests/unit/Espo/Core/Utils/Config/ConfigWriterTest.php index 178c803a98..6378ae0c01 100644 --- a/tests/unit/Espo/Core/Utils/Config/ConfigWriterTest.php +++ b/tests/unit/Espo/Core/Utils/Config/ConfigWriterTest.php @@ -97,27 +97,25 @@ class ConfigWriterTest extends \PHPUnit\Framework\TestCase ->method('update'); $this->fileManager - ->expects($this->at(0)) + ->expects($this->once()) ->method('isFile') ->with($this->configPath) ->willReturn(true); $this->fileManager - ->expects($this->at(1)) - ->method('getPhpContents') - ->with($this->configPath) - ->willReturn($previousData); - - $this->fileManager - ->expects($this->at(2)) + ->expects($this->once()) ->method('putPhpContents') - ->with($this->configPath, $newData); + ->with($this->configPath, $newData) + ->willReturn($previousData); $this->fileManager - ->expects($this->at(3)) + ->expects($this->exactly(2)) ->method('getPhpContents') - ->with($this->configPath) - ->willReturn($previousData); + ->withConsecutive( + [$this->configPath], + [$this->configPath], + ) + ->willReturnOnConsecutiveCalls($previousData); $this->configWriter->save(); } diff --git a/tests/unit/Espo/Core/Utils/PeloadTest.php b/tests/unit/Espo/Core/Utils/PreloadTest.php similarity index 100% rename from tests/unit/Espo/Core/Utils/PeloadTest.php rename to tests/unit/Espo/Core/Utils/PreloadTest.php