Skip to content

Commit fad886a

Browse files
[WIP] UnitOfWork::getEntityChangeSet tests update
1 parent 3f2e233 commit fad886a

File tree

6 files changed

+18
-184
lines changed

6 files changed

+18
-184
lines changed

src/Type/Doctrine/UnitOfWorkGetEntityChangeSetDynamicReturnTypeExtension.php

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,10 @@
1212
use PHPStan\Type\Constant\ConstantArrayTypeBuilder;
1313
use PHPStan\Type\Constant\ConstantIntegerType;
1414
use PHPStan\Type\Constant\ConstantStringType;
15-
use PHPStan\Type\Doctrine\DescriptorNotRegisteredException;
1615
use PHPStan\Type\DynamicMethodReturnTypeExtension;
1716
use PHPStan\Type\MixedType;
18-
use PHPStan\Type\Type;
1917
use PHPStan\Type\ObjectType;
18+
use PHPStan\Type\Type;
2019
use PHPStan\Type\TypeCombinator;
2120
use function count;
2221
use function is_array;
@@ -109,7 +108,7 @@ private function createChangeSetType(ClassMetadata $metadata): Type
109108

110109
$builder->setOffsetValueType(
111110
new ConstantStringType($fieldName),
112-
$fieldBuilder->getArray()
111+
$fieldBuilder->getArray(),
113112
);
114113
}
115114

@@ -131,7 +130,7 @@ private function createChangeSetType(ClassMetadata $metadata): Type
131130

132131
$builder->setOffsetValueType(
133132
new ConstantStringType($fieldName),
134-
$fieldBuilder->getArray()
133+
$fieldBuilder->getArray(),
135134
);
136135
continue;
137136
}
@@ -146,7 +145,7 @@ private function createChangeSetType(ClassMetadata $metadata): Type
146145

147146
$builder->setOffsetValueType(
148147
new ConstantStringType($fieldName),
149-
$fieldBuilder->getArray()
148+
$fieldBuilder->getArray(),
150149
);
151150
}
152151

@@ -180,7 +179,7 @@ private function getDefaultReturnType(MethodReflection $methodReflection, Scope
180179
return ParametersAcceptorSelector::selectFromArgs(
181180
$scope,
182181
$methodCall->getArgs(),
183-
$methodReflection->getVariants()
182+
$methodReflection->getVariants(),
184183
)->getReturnType();
185184
}
186185

tests/Type/Doctrine/UnitOfWorkGetEntityChangeSetDynamicReturnTypeExtensionTest.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,4 +33,3 @@ public static function getAdditionalConfigFiles(): array
3333
}
3434

3535
}
36-

tests/Type/Doctrine/data/UnitOfWorkChangeSet/Entities/RelatedEntity.php

Lines changed: 0 additions & 51 deletions
This file was deleted.

tests/Type/Doctrine/data/UnitOfWorkChangeSet/Entities/SimpleEntity.php

Lines changed: 0 additions & 99 deletions
This file was deleted.
Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,3 @@
11
<?php declare(strict_types = 1);
22

3-
use Cache\Adapter\PHPArray\ArrayCachePool;
4-
use Doctrine\DBAL\DriverManager;
5-
use Doctrine\ORM\EntityManager;
6-
use Doctrine\ORM\Mapping\Driver\StaticPHPDriver;
7-
use Doctrine\ORM\ORMSetup;
8-
9-
$config = ORMSetup::createConfiguration(
10-
true,
11-
__DIR__,
12-
new ArrayCachePool()
13-
);
14-
15-
$config->setMetadataDriverImpl(new StaticPHPDriver([__DIR__ . '/Entities']));
16-
17-
$config->setProxyNamespace('PHPStan\\Doctrine\\UnitOfWorkChangeSetProxies');
18-
$config->setAutoGenerateProxyClasses(true);
19-
20-
return new EntityManager(
21-
DriverManager::getConnection([
22-
'driver' => 'pdo_sqlite',
23-
'memory' => true,
24-
]),
25-
$config
26-
);
3+
return require __DIR__ . '/../QueryResult/entity-manager.php';

tests/Type/Doctrine/data/UnitOfWorkChangeSet/unitOfWork-change-set.php

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,24 @@
33
namespace UnitOfWorkChangeSet;
44

55
use Doctrine\ORM\UnitOfWork;
6-
use UnitOfWorkChangeSet\Entities\SimpleEntity;
6+
use QueryResult\Entities\Many;
7+
use QueryResult\Entities\Simple;
78
use function PHPStan\Testing\assertType;
89

910
final class UnitOfWorkChangeSetAssertions
1011
{
11-
public function simpleField(UnitOfWork $unitOfWork, SimpleEntity $entity): void
12+
public function simpleField(UnitOfWork $unitOfWork, Simple $entity): void
1213
{
1314
assertType(
14-
'array{foo: array{int, int}, nullableFoo: array{int|null, int|null}, related: array{UnitOfWorkChangeSet\\Entities\\RelatedEntity|null, UnitOfWorkChangeSet\\Entities\\RelatedEntity|null}, relatedCollection: array{Doctrine\\ORM\\PersistentCollection, Doctrine\\ORM\\PersistentCollection}}',
15+
'array{intColumn: array{int, int}, floatColumn: array{float, float}, decimalColumn: array{numeric-string&uppercase-string, numeric-string&uppercase-string}, stringColumn: array{string, string}, stringNullColumn: array{string|null, string|null}, mixedColumn: array{mixed, mixed}}',
16+
$unitOfWork->getEntityChangeSet($entity)
17+
);
18+
}
19+
20+
public function associations(UnitOfWork $unitOfWork, Many $entity): void
21+
{
22+
assertType(
23+
'array{intColumn: array{int, int}, stringColumn: array{string, string}, stringNullColumn: array{string|null, string|null}, datetimeColumn: array{DateTime, DateTime}, datetimeImmutableColumn: array{DateTimeImmutable, DateTimeImmutable}, simpleArrayColumn: array{list<string>, list<string>}, one: array{QueryResult\\Entities\\One, QueryResult\\Entities\\One}, oneNull: array{QueryResult\\Entities\\One|null, QueryResult\\Entities\\One|null}, oneDefaultNullability: array{QueryResult\\Entities\\One|null, QueryResult\\Entities\\One|null}, compoundPk: array{QueryResult\\Entities\\CompoundPk|null, QueryResult\\Entities\\CompoundPk|null}, compoundPkAssoc: array{QueryResult\\Entities\\CompoundPkAssoc|null, QueryResult\\Entities\\CompoundPkAssoc|null}}',
1524
$unitOfWork->getEntityChangeSet($entity)
1625
);
1726
}

0 commit comments

Comments
 (0)