Skip to content

Commit

Permalink
chore(test): remove most of deprecations in test (#55)
Browse files Browse the repository at this point in the history
  • Loading branch information
joelwurtz authored Mar 14, 2024
1 parent d409a62 commit 0359930
Show file tree
Hide file tree
Showing 8 changed files with 35 additions and 42 deletions.
8 changes: 8 additions & 0 deletions src/AutoMapper.php
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,9 @@ public function bindCustomTransformer(CustomTransformerInterface $customTransfor
$this->customTransformersRegistry->addCustomTransformer($customTransformer, $id);
}

/**
* @param list<TransformerFactoryInterface> $transformerFactories
*/
public static function create(
bool $mapPrivateProperties = false,
ClassLoaderInterface $loader = null,
Expand All @@ -176,6 +179,7 @@ public static function create(
bool $autoRegister = true,
string $dateTimeFormat = \DateTimeInterface::RFC3339,
bool $allowReadOnlyTargetToPopulate = false,
array $transformerFactories = [],
): self {
if (class_exists(AttributeLoader::class)) {
$loaderClass = new AttributeLoader();
Expand Down Expand Up @@ -224,6 +228,10 @@ public static function create(
$factories[] = new SymfonyUidTransformerFactory();
}

foreach ($transformerFactories as $factory) {
$factories[] = $factory;
}

$transformerFactory = new ChainTransformerFactory($factories);

$sourceTargetMappingExtractor = new SourceTargetMappingExtractor(
Expand Down
4 changes: 2 additions & 2 deletions tests/AutoMapperBaseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ protected function setUp(): void
$this->buildAutoMapper();
}

protected function buildAutoMapper(bool $allowReadOnlyTargetToPopulate = false, bool $mapPrivatePropertiesAndMethod = false, string $classPrefix = 'Mapper_'): AutoMapper
protected function buildAutoMapper(bool $allowReadOnlyTargetToPopulate = false, bool $mapPrivatePropertiesAndMethod = false, string $classPrefix = 'Mapper_', array $transformerFactories = []): AutoMapper
{
$fs = new Filesystem();
$fs->remove(__DIR__ . '/cache/');
Expand All @@ -48,6 +48,6 @@ protected function buildAutoMapper(bool $allowReadOnlyTargetToPopulate = false,
$allowReadOnlyTargetToPopulate
), __DIR__ . '/cache');

return $this->autoMapper = AutoMapper::create($mapPrivatePropertiesAndMethod, $this->loader, classPrefix: $classPrefix);
return $this->autoMapper = AutoMapper::create($mapPrivatePropertiesAndMethod, $this->loader, classPrefix: $classPrefix, transformerFactories: $transformerFactories);
}
}
8 changes: 3 additions & 5 deletions tests/AutoMapperTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -769,9 +769,7 @@ public function testWithMixedArray(): void

public function testCustomTransformerFromArrayToObject(): void
{
$this->buildAutoMapper(mapPrivatePropertiesAndMethod: true);

$this->autoMapper->bindTransformerFactory(new MoneyTransformerFactory());
$this->buildAutoMapper(mapPrivatePropertiesAndMethod: true, transformerFactories: [new MoneyTransformerFactory()]);

$data = [
'id' => 4582,
Expand All @@ -790,7 +788,7 @@ public function testCustomTransformerFromArrayToObject(): void

public function testCustomTransformerFromObjectToArray(): void
{
$this->autoMapper->bindTransformerFactory(new MoneyTransformerFactory());
$this->buildAutoMapper(transformerFactories: [new MoneyTransformerFactory()]);

$order = new Order();
$order->id = 4582;
Expand All @@ -806,7 +804,7 @@ public function testCustomTransformerFromObjectToArray(): void

public function testCustomTransformerFromObjectToObject(): void
{
$this->autoMapper->bindTransformerFactory(new MoneyTransformerFactory());
$this->buildAutoMapper(transformerFactories: [new MoneyTransformerFactory()]);

$order = new Order();
$order->id = 4582;
Expand Down
7 changes: 3 additions & 4 deletions tests/Transformer/ChainTransformerFactoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@ class ChainTransformerFactoryTest extends TestCase
{
public function testGetTransformer(): void
{
$chainTransformerFactory = new ChainTransformerFactory();
$transformer = new CopyTransformer();
$mapperMetadata = $this->getMockBuilder(MapperMetadata::class)->disableOriginalConstructor()->getMock();
$subTransformer = $this
Expand All @@ -23,7 +22,8 @@ public function testGetTransformer(): void
;

$subTransformer->expects($this->any())->method('getTransformer')->willReturn($transformer);
$chainTransformerFactory->addTransformerFactory($subTransformer);

$chainTransformerFactory = new ChainTransformerFactory([$subTransformer]);

$transformerReturned = $chainTransformerFactory->getTransformer([], [], $mapperMetadata);

Expand All @@ -32,15 +32,14 @@ public function testGetTransformer(): void

public function testNoTransformer(): void
{
$chainTransformerFactory = new ChainTransformerFactory();
$mapperMetadata = $this->getMockBuilder(MapperMetadata::class)->disableOriginalConstructor()->getMock();
$subTransformer = $this
->getMockBuilder(TransformerFactoryInterface::class)
->getMock()
;

$subTransformer->expects($this->any())->method('getTransformer')->willReturn(null);
$chainTransformerFactory->addTransformerFactory($subTransformer);
$chainTransformerFactory = new ChainTransformerFactory([$subTransformer]);

$transformerReturned = $chainTransformerFactory->getTransformer([], [], $mapperMetadata);

Expand Down
3 changes: 2 additions & 1 deletion tests/Transformer/EvalTransformerTrait.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,10 @@ private function createTransformerFunction(TransformerInterface $transformer, Pr
$variableScope = new UniqueVariableScope();
$inputName = $variableScope->getUniqueName('input');
$inputExpr = new Expr\Variable($inputName);
$sourceExpr = new Expr\Variable('source');

// we give $inputExpr as $targetExpr since we don't use it there and this is needed by TransformerInterface
[$outputExpr, $stmts] = $transformer->transform($inputExpr, $inputExpr, $propertyMapping, $variableScope);
[$outputExpr, $stmts] = $transformer->transform($inputExpr, $inputExpr, $propertyMapping, $variableScope, $sourceExpr);

$stmts[] = new Stmt\Return_($outputExpr);

Expand Down
10 changes: 2 additions & 8 deletions tests/Transformer/MultipleTransformerFactoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,10 @@ class MultipleTransformerFactoryTest extends TestCase
{
public function testGetTransformer(): void
{
$chainFactory = new ChainTransformerFactory();
$chainFactory = new ChainTransformerFactory([new BuiltinTransformerFactory()]);
$factory = new MultipleTransformerFactory();
$factory->setChainTransformerFactory($chainFactory);

$chainFactory->addTransformerFactory($factory);
$chainFactory->addTransformerFactory(new BuiltinTransformerFactory());

$mapperMetadata = $this->getMockBuilder(MapperMetadata::class)->disableOriginalConstructor()->getMock();

$transformer = $factory->getTransformer([new Type('string'), new Type('int')], [], $mapperMetadata);
Expand Down Expand Up @@ -52,13 +49,10 @@ public function testNoTransformerIfNoSubTransformer(): void

public function testNoTransformer(): void
{
$chainFactory = new ChainTransformerFactory();
$chainFactory = new ChainTransformerFactory([new BuiltinTransformerFactory()]);
$factory = new MultipleTransformerFactory();
$factory->setChainTransformerFactory($chainFactory);

$chainFactory->addTransformerFactory($factory);
$chainFactory->addTransformerFactory(new BuiltinTransformerFactory());

$mapperMetadata = $this->getMockBuilder(MapperMetadata::class)->disableOriginalConstructor()->getMock();

$transformer = $factory->getTransformer(null, null, $mapperMetadata);
Expand Down
21 changes: 9 additions & 12 deletions tests/Transformer/NullableTransformerFactoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,10 @@ protected function setUp(): void

public function testGetTransformer(): void
{
$chainFactory = new ChainTransformerFactory();
$factory = new NullableTransformerFactory($chainFactory);
$chainFactory = new ChainTransformerFactory([new BuiltinTransformerFactory()]);
$factory = new NullableTransformerFactory();
$factory->setChainTransformerFactory($chainFactory);

$chainFactory->addTransformerFactory($factory);
$chainFactory->addTransformerFactory(new BuiltinTransformerFactory());
$mapperMetadata = $this->getMockBuilder(MapperMetadata::class)->disableOriginalConstructor()->getMock();

$transformer = $factory->getTransformer([new Type('string', true)], [new Type('string')], $mapperMetadata);
Expand Down Expand Up @@ -58,11 +57,10 @@ public function testGetTransformer(): void

public function testNullTransformerIfSourceTypeNotNullable(): void
{
$chainFactory = new ChainTransformerFactory();
$factory = new NullableTransformerFactory($chainFactory);
$chainFactory = new ChainTransformerFactory([new BuiltinTransformerFactory()]);
$factory = new NullableTransformerFactory();
$factory->setChainTransformerFactory($chainFactory);

$chainFactory->addTransformerFactory($factory);
$chainFactory->addTransformerFactory(new BuiltinTransformerFactory());
$mapperMetadata = $this->getMockBuilder(MapperMetadata::class)->disableOriginalConstructor()->getMock();

$transformer = $factory->getTransformer([new Type('string')], [new Type('string')], $mapperMetadata);
Expand All @@ -72,11 +70,10 @@ public function testNullTransformerIfSourceTypeNotNullable(): void

public function testNullTransformerIfMultipleSource(): void
{
$chainFactory = new ChainTransformerFactory();
$factory = new NullableTransformerFactory($chainFactory);
$chainFactory = new ChainTransformerFactory([new BuiltinTransformerFactory()]);
$factory = new NullableTransformerFactory();
$factory->setChainTransformerFactory($chainFactory);

$chainFactory->addTransformerFactory($factory);
$chainFactory->addTransformerFactory(new BuiltinTransformerFactory());
$mapperMetadata = $this->getMockBuilder(MapperMetadata::class)->disableOriginalConstructor()->getMock();

$transformer = $factory->getTransformer([new Type('string', true), new Type('string')], [new Type('string')], $mapperMetadata);
Expand Down
16 changes: 6 additions & 10 deletions tests/Transformer/UniqueTypeTransformerFactoryTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,9 @@ class UniqueTypeTransformerFactoryTest extends TestCase
{
public function testGetTransformer(): void
{
$chainFactory = new ChainTransformerFactory();
$factory = new UniqueTypeTransformerFactory($chainFactory);

$chainFactory->addTransformerFactory($factory);
$chainFactory->addTransformerFactory(new BuiltinTransformerFactory());
$chainFactory = new ChainTransformerFactory([new BuiltinTransformerFactory()]);
$factory = new UniqueTypeTransformerFactory();
$factory->setChainTransformerFactory($chainFactory);

$mapperMetadata = $this->getMockBuilder(MapperMetadata::class)->disableOriginalConstructor()->getMock();

Expand All @@ -32,11 +30,9 @@ public function testGetTransformer(): void

public function testNullTransformer(): void
{
$chainFactory = new ChainTransformerFactory();
$factory = new UniqueTypeTransformerFactory($chainFactory);

$chainFactory->addTransformerFactory($factory);
$chainFactory->addTransformerFactory(new BuiltinTransformerFactory());
$chainFactory = new ChainTransformerFactory([new BuiltinTransformerFactory()]);
$factory = new UniqueTypeTransformerFactory();
$factory->setChainTransformerFactory($chainFactory);

$mapperMetadata = $this->getMockBuilder(MapperMetadata::class)->disableOriginalConstructor()->getMock();

Expand Down

0 comments on commit 0359930

Please sign in to comment.