Skip to content

Commit

Permalink
test: Migrate tests to use FrameworkBundle.
Browse files Browse the repository at this point in the history
  • Loading branch information
priyadi committed Feb 4, 2024
1 parent abe8450 commit fd0df5c
Show file tree
Hide file tree
Showing 25 changed files with 149 additions and 69 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
* refactor(`CompilerPass`): Reduce code duplication.
* feat(`SubMapper`): Now available as additional argument in `PropertyMapper` &
`ObjectMapper`.
* test: Migrate tests to use `FrameworkBundle`.

## 0.5.26

Expand Down
10 changes: 10 additions & 0 deletions config/tests.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,20 @@
*/

use Rekalogika\Mapper\Tests\Common\TestKernel;
use Rekalogika\Mapper\Tests\Fixtures\Money\MoneyToMoneyDtoTransformer;
use Rekalogika\Mapper\Tests\Fixtures\ObjectMapper\MoneyObjectMapper;
use Rekalogika\Mapper\Tests\Fixtures\PropertyMapper\PropertyMapperWithClassAttribute;
use Rekalogika\Mapper\Tests\Fixtures\PropertyMapper\PropertyMapperWithClassAttributeWithoutExplicitProperty;
use Rekalogika\Mapper\Tests\Fixtures\PropertyMapper\PropertyMapperWithConstructorWithClassAttribute;
use Rekalogika\Mapper\Tests\Fixtures\PropertyMapper\PropertyMapperWithConstructorWithoutClassAttribute;
use Rekalogika\Mapper\Tests\Fixtures\PropertyMapper\PropertyMapperWithExtraArguments;
use Rekalogika\Mapper\Tests\Fixtures\PropertyMapper\PropertyMapperWithoutClassAttribute;
use Rekalogika\Mapper\Tests\Fixtures\TransformerOverride\OverrideTransformer;
use Rekalogika\Mapper\Transformer\ScalarToScalarTransformer;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;

use function Symfony\Component\DependencyInjection\Loader\Configurator\service;

return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();

Expand All @@ -43,4 +48,9 @@
$services->set(PropertyMapperWithClassAttributeWithoutExplicitProperty::class);
$services->set(PropertyMapperWithExtraArguments::class);
$services->set(MoneyObjectMapper::class);
$services->set(MoneyToMoneyDtoTransformer::class);
$services->set(OverrideTransformer::class)
->args([
'$transformer' => service(ScalarToScalarTransformer::class),
]);
};
34 changes: 34 additions & 0 deletions tests/Fixtures/Override/ObjectWithArrayProperty.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
<?php

declare(strict_types=1);

/*
* This file is part of rekalogika/mapper package.
*
* (c) Priyadi Iman Nurcahyo <https://rekalogika.dev>
*
* For the full copyright and license information, please view the LICENSE file
* that was distributed with this source code.
*/

namespace Rekalogika\Mapper\Tests\Fixtures\Override;

use Rekalogika\Mapper\Tests\Fixtures\Scalar\ObjectWithScalarProperties;

class ObjectWithArrayProperty
{
/**
* @var array<int,ObjectWithScalarProperties>
*/
public array $property;

public function __construct()
{
$this->property = [
new ObjectWithScalarProperties(),
new ObjectWithScalarProperties(),
new ObjectWithScalarProperties(),
];
}

}
37 changes: 37 additions & 0 deletions tests/Fixtures/Override/ObjectWithArrayPropertyDto.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

declare(strict_types=1);

/*
* This file is part of rekalogika/mapper package.
*
* (c) Priyadi Iman Nurcahyo <https://rekalogika.dev>
*
* For the full copyright and license information, please view the LICENSE file
* that was distributed with this source code.
*/

namespace Rekalogika\Mapper\Tests\Fixtures\Override;

use Rekalogika\Mapper\Tests\Fixtures\ScalarDto\ObjectWithScalarPropertiesDto;

class ObjectWithArrayPropertyDto
{
/**
* @var ?array<int,ObjectWithScalarPropertiesDto>
*/
public ?array $property = null;

public static function initialized(): self
{
$instance = new self();

$instance->property = [
1 => new ObjectWithScalarPropertiesDto(),
2 => new ObjectWithScalarPropertiesDto(),
3 => new ObjectWithScalarPropertiesDto(),
];

return $instance;
}
}
4 changes: 2 additions & 2 deletions tests/Fixtures/TransformerOverride/OverrideTransformer.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@

namespace Rekalogika\Mapper\Tests\Fixtures\TransformerOverride;

use Rekalogika\Mapper\Tests\Fixtures\ArrayLike\ObjectWithArrayProperty;
use Rekalogika\Mapper\Tests\Fixtures\ArrayLikeDto\ObjectWithArrayPropertyDto;
use Rekalogika\Mapper\Tests\Fixtures\Override\ObjectWithArrayProperty;
use Rekalogika\Mapper\Tests\Fixtures\Override\ObjectWithArrayPropertyDto;
use Rekalogika\Mapper\Transformer\AbstractTransformerDecorator;
use Rekalogika\Mapper\Transformer\Contracts\TransformerInterface;
use Rekalogika\Mapper\Transformer\Contracts\TypeMapping;
Expand Down
4 changes: 2 additions & 2 deletions tests/IntegrationTest/AdderTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@

namespace Rekalogika\Mapper\Tests\IntegrationTest;

use Rekalogika\Mapper\Tests\Common\AbstractIntegrationTest;
use Rekalogika\Mapper\Tests\Common\AbstractFrameworkTest;
use Rekalogika\Mapper\Tests\Fixtures\Adder\Comment;
use Rekalogika\Mapper\Tests\Fixtures\Adder\Post;
use Rekalogika\Mapper\Tests\Fixtures\AdderDto\PostDto;

class AdderTest extends AbstractIntegrationTest
class AdderTest extends AbstractFrameworkTest
{
public function testAdder(): void
{
Expand Down
4 changes: 2 additions & 2 deletions tests/IntegrationTest/ArrayAndObjectMappingTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@
use Rekalogika\Mapper\Context\Context;
use Rekalogika\Mapper\Serializer\DenormalizerContext;
use Rekalogika\Mapper\Serializer\NormalizerContext;
use Rekalogika\Mapper\Tests\Common\AbstractIntegrationTest;
use Rekalogika\Mapper\Tests\Common\AbstractFrameworkTest;
use Rekalogika\Mapper\Tests\Fixtures\ArrayAndObject\ContainingObject;
use Rekalogika\Mapper\Tests\Fixtures\ArrayAndObjectDto\ContainingObjectDto;

class ArrayAndObjectMappingTest extends AbstractIntegrationTest
class ArrayAndObjectMappingTest extends AbstractFrameworkTest
{
public function testObjectToArrayAndBack(): void
{
Expand Down
10 changes: 7 additions & 3 deletions tests/IntegrationTest/AttributeTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,23 @@

namespace Rekalogika\Mapper\Tests\IntegrationTest;

use Rekalogika\Mapper\Tests\Common\AbstractIntegrationTest;
use Rekalogika\Mapper\Tests\Common\AbstractFrameworkTest;
use Rekalogika\Mapper\Tests\Fixtures\Attribute\ObjectWithAttribute;
use Rekalogika\Mapper\Tests\Fixtures\Attribute\SomeAttribute;
use Rekalogika\Mapper\TypeResolver\TypeResolverInterface;
use Rekalogika\Mapper\Util\TypeFactory;

class AttributeTest extends AbstractIntegrationTest
class AttributeTest extends AbstractFrameworkTest
{
public function testAttribute(): void
{
$class = ObjectWithAttribute::class;
$type = TypeFactory::objectOfClass($class);

$typeStrings = $this->typeResolver->getAcceptedTransformerInputTypeStrings($type);
$typeResolver = $this->get('test.rekalogika.mapper.type_resolver');
$this->assertInstanceOf(TypeResolverInterface::class, $typeResolver);

$typeStrings = $typeResolver->getAcceptedTransformerInputTypeStrings($type);

$this->assertContainsEquals(SomeAttribute::class, $typeStrings);
}
Expand Down
4 changes: 2 additions & 2 deletions tests/IntegrationTest/ConstructorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

namespace Rekalogika\Mapper\Tests\IntegrationTest;

use Rekalogika\Mapper\Tests\Common\AbstractIntegrationTest;
use Rekalogika\Mapper\Tests\Common\AbstractFrameworkTest;
use Rekalogika\Mapper\Tests\Fixtures\Constructor\ObjectWithConstructorAndMoreArgumentDto;
use Rekalogika\Mapper\Tests\Fixtures\Constructor\ObjectWithConstructorAndPropertiesDto;
use Rekalogika\Mapper\Tests\Fixtures\Constructor\ObjectWithConstructorDto;
Expand All @@ -23,7 +23,7 @@
use Rekalogika\Mapper\Transformer\Exception\ClassNotInstantiableException;
use Rekalogika\Mapper\Transformer\Exception\InstantiationFailureException;

class ConstructorTest extends AbstractIntegrationTest
class ConstructorTest extends AbstractFrameworkTest
{
public function testConstructor(): void
{
Expand Down
12 changes: 2 additions & 10 deletions tests/IntegrationTest/CustomTransformerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,21 +14,13 @@
namespace Rekalogika\Mapper\Tests\IntegrationTest;

use Brick\Money\Money;
use Rekalogika\Mapper\Tests\Common\AbstractIntegrationTest;
use Rekalogika\Mapper\Tests\Common\AbstractFrameworkTest;
use Rekalogika\Mapper\Tests\Fixtures\Money\MoneyDto;
use Rekalogika\Mapper\Tests\Fixtures\Money\MoneyToMoneyDtoTransformer;
use Rekalogika\Mapper\Tests\Fixtures\Money\ObjectWithIntegerBackedMoneyProperty;
use Rekalogika\Mapper\Tests\Fixtures\Money\ObjectWithMoneyAmountDto;

class CustomTransformerTest extends AbstractIntegrationTest
class CustomTransformerTest extends AbstractFrameworkTest
{
protected function getAdditionalTransformers(): array
{
return [
'MoneyToMoneyDtoTransformer' => new MoneyToMoneyDtoTransformer(),
];
}

public function testMoneyToMoneyDto(): void
{
$money = Money::of("100000.00", 'IDR');
Expand Down
4 changes: 2 additions & 2 deletions tests/IntegrationTest/DateTimeMappingTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@

namespace Rekalogika\Mapper\Tests\IntegrationTest;

use Rekalogika\Mapper\Tests\Common\AbstractIntegrationTest;
use Rekalogika\Mapper\Tests\Common\AbstractFrameworkTest;
use Symfony\Component\Clock\DatePoint;

class DateTimeMappingTest extends AbstractIntegrationTest
class DateTimeMappingTest extends AbstractFrameworkTest
{
/**
* @param class-string $sourceClass
Expand Down
4 changes: 2 additions & 2 deletions tests/IntegrationTest/InheritanceTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

namespace Rekalogika\Mapper\Tests\IntegrationTest;

use Rekalogika\Mapper\Tests\Common\AbstractIntegrationTest;
use Rekalogika\Mapper\Tests\Common\AbstractFrameworkTest;
use Rekalogika\Mapper\Tests\Fixtures\Inheritance\ConcreteClassA;
use Rekalogika\Mapper\Tests\Fixtures\Inheritance\ConcreteClassC;
use Rekalogika\Mapper\Tests\Fixtures\InheritanceDto\AbstractClassDto;
Expand All @@ -26,7 +26,7 @@
use Rekalogika\Mapper\Transformer\Exception\NotAClassException;
use Rekalogika\Mapper\Transformer\Exception\SourceClassNotInInheritanceMapException;

class InheritanceTest extends AbstractIntegrationTest
class InheritanceTest extends AbstractFrameworkTest
{
public function testMapToAbstractClass(): void
{
Expand Down
4 changes: 2 additions & 2 deletions tests/IntegrationTest/InternalClassTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,12 +13,12 @@

namespace Rekalogika\Mapper\Tests\IntegrationTest;

use Rekalogika\Mapper\Tests\Common\AbstractIntegrationTest;
use Rekalogika\Mapper\Tests\Common\AbstractFrameworkTest;
use Rekalogika\Mapper\Tests\Fixtures\InternalClass\ObjectWithInternalClass;
use Rekalogika\Mapper\Tests\Fixtures\InternalClass\ObjectWithInternalClassDto;
use Rekalogika\Mapper\Transformer\Exception\InternalClassUnsupportedException;

class InternalClassTest extends AbstractIntegrationTest
class InternalClassTest extends AbstractFrameworkTest
{
public function testInternalClass(): void
{
Expand Down
15 changes: 11 additions & 4 deletions tests/IntegrationTest/MappingTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Rekalogika\Mapper\Attribute\InheritanceMap;
use Rekalogika\Mapper\Tests\Common\AbstractIntegrationTest;
use Rekalogika\Mapper\Tests\Common\AbstractFrameworkTest;
use Rekalogika\Mapper\Tests\Fixtures\EnumAndStringable\ObjectImplementingStringable;
use Rekalogika\Mapper\Tests\Fixtures\EnumAndStringable\SomeBackedEnum;
use Rekalogika\Mapper\Tests\Fixtures\EnumAndStringable\SomeEnum;
Expand All @@ -28,11 +28,12 @@
use Rekalogika\Mapper\Transformer\ScalarToScalarTransformer;
use Rekalogika\Mapper\Transformer\StringToBackedEnumTransformer;
use Rekalogika\Mapper\Transformer\TraversableToArrayAccessTransformer;
use Rekalogika\Mapper\TransformerRegistry\TransformerRegistryInterface;
use Rekalogika\Mapper\Util\TypeFactory;
use Symfony\Component\Clock\DatePoint;
use Symfony\Component\PropertyInfo\Type;

class MappingTest extends AbstractIntegrationTest
class MappingTest extends AbstractFrameworkTest
{
/**
* Testing mapping against default mapping table
Expand All @@ -46,7 +47,13 @@ public function testMapping(
array $targets,
string $transformerClass
): void {
$searchResult = $this->transformerRegistry->findBySourceAndTargetTypes(
$transformerRegistry = $this->get('test.rekalogika.mapper.transformer_registry');
$this->assertInstanceOf(
TransformerRegistryInterface::class,
$transformerRegistry,
);

$searchResult = $transformerRegistry->findBySourceAndTargetTypes(
sourceTypes: $sources,
targetTypes: $targets,
);
Expand All @@ -56,7 +63,7 @@ public function testMapping(
$first = $searchResult[0] ?? null;
$this->assertNotNull($first);

$transformer = $this->transformerRegistry->get(
$transformer = $transformerRegistry->get(
$first->getTransformerServiceId()
);

Expand Down
4 changes: 2 additions & 2 deletions tests/IntegrationTest/MethodMapperTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,15 @@
namespace Rekalogika\Mapper\Tests\IntegrationTest;

use Brick\Money\Money;
use Rekalogika\Mapper\Tests\Common\AbstractIntegrationTest;
use Rekalogika\Mapper\Tests\Common\AbstractFrameworkTest;
use Rekalogika\Mapper\Tests\Fixtures\MethodMapper\MoneyDto;
use Rekalogika\Mapper\Tests\Fixtures\MethodMapper\ObjectWithArrayPropertyDto;
use Rekalogika\Mapper\Tests\Fixtures\MethodMapper\ObjectWithCollectionProperty;
use Rekalogika\Mapper\Tests\Fixtures\MethodMapper\ObjectWithObjectWithScalarProperties;
use Rekalogika\Mapper\Tests\Fixtures\MethodMapper\ObjectWithObjectWithScalarPropertiesDto;
use Rekalogika\Mapper\Tests\Fixtures\ScalarDto\ObjectWithScalarPropertiesDto;

class MethodMapperTest extends AbstractIntegrationTest
class MethodMapperTest extends AbstractFrameworkTest
{
public function testMoneyToMoneyDto(): void
{
Expand Down
4 changes: 2 additions & 2 deletions tests/IntegrationTest/ObjectEnumStringMappingTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@

namespace Rekalogika\Mapper\Tests\IntegrationTest;

use Rekalogika\Mapper\Tests\Common\AbstractIntegrationTest;
use Rekalogika\Mapper\Tests\Common\AbstractFrameworkTest;
use Rekalogika\Mapper\Tests\Fixtures\EnumAndStringable\ObjectWithEnumStringableProperty;
use Rekalogika\Mapper\Tests\Fixtures\EnumAndStringable\SomeBackedEnum;
use Rekalogika\Mapper\Tests\Fixtures\EnumAndStringable\SomeEnum;
use Rekalogika\Mapper\Tests\Fixtures\EnumAndStringableDto\ObjectWithEnumStringablePropertyDto;

class ObjectEnumStringMappingTest extends AbstractIntegrationTest
class ObjectEnumStringMappingTest extends AbstractFrameworkTest
{
public function testToString(): void
{
Expand Down
4 changes: 2 additions & 2 deletions tests/IntegrationTest/ObjectKeysTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@

namespace Rekalogika\Mapper\Tests\IntegrationTest;

use Rekalogika\Mapper\Tests\Common\AbstractIntegrationTest;
use Rekalogika\Mapper\Tests\Common\AbstractFrameworkTest;
use Rekalogika\Mapper\Tests\Fixtures\ObjectKeys\RelationshipMap;
use Rekalogika\Mapper\Tests\Fixtures\ObjectKeysDto\PersonDto;
use Rekalogika\Mapper\Tests\Fixtures\ObjectKeysDto\RelationshipMapDto;
use Rekalogika\Mapper\Transformer\Model\HashTable;

class ObjectKeysTest extends AbstractIntegrationTest
class ObjectKeysTest extends AbstractFrameworkTest
{
public function testObjectKeys(): void
{
Expand Down
4 changes: 2 additions & 2 deletions tests/IntegrationTest/RecursionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@

namespace Rekalogika\Mapper\Tests\IntegrationTest;

use Rekalogika\Mapper\Tests\Common\AbstractIntegrationTest;
use Rekalogika\Mapper\Tests\Common\AbstractFrameworkTest;
use Rekalogika\Mapper\Tests\Fixtures\Recursive\ChildObject;
use Rekalogika\Mapper\Tests\Fixtures\Recursive\ObjectWithRefToItself;
use Rekalogika\Mapper\Tests\Fixtures\Recursive\ParentObject;
use Rekalogika\Mapper\Tests\Fixtures\RecursiveDto\ChildObjectDto;
use Rekalogika\Mapper\Tests\Fixtures\RecursiveDto\ObjectWithRefToItselfDto;
use Rekalogika\Mapper\Tests\Fixtures\RecursiveDto\ParentObjectDto;

class RecursionTest extends AbstractIntegrationTest
class RecursionTest extends AbstractFrameworkTest
{
public function testParentChild(): void
{
Expand Down
4 changes: 2 additions & 2 deletions tests/IntegrationTest/ScalarPropertiesMappingTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@

namespace Rekalogika\Mapper\Tests\IntegrationTest;

use Rekalogika\Mapper\Tests\Common\AbstractIntegrationTest;
use Rekalogika\Mapper\Tests\Common\AbstractFrameworkTest;
use Rekalogika\Mapper\Tests\Fixtures\Scalar\ObjectWithScalarProperties;
use Rekalogika\Mapper\Tests\Fixtures\ScalarDto\ObjectWithBoolPropertiesDto;
use Rekalogika\Mapper\Tests\Fixtures\ScalarDto\ObjectWithFloatPropertiesDto;
use Rekalogika\Mapper\Tests\Fixtures\ScalarDto\ObjectWithIntPropertiesDto;
use Rekalogika\Mapper\Tests\Fixtures\ScalarDto\ObjectWithScalarPropertiesDto;
use Rekalogika\Mapper\Tests\Fixtures\ScalarDto\ObjectWithStringPropertiesDto;

class ScalarPropertiesMappingTest extends AbstractIntegrationTest
class ScalarPropertiesMappingTest extends AbstractFrameworkTest
{
public function testScalarIdentity(): void
{
Expand Down
Loading

0 comments on commit fd0df5c

Please sign in to comment.