diff --git a/CHANGELOG.md b/CHANGELOG.md index ae90552..e5cc192 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ * refactor: Move transformer query logic to `TransformerRegistry`. * refactor: Mover more logic to `TransformerRegistry`. * refactor: Move `MainTransformer` to its own namespace. +* refactor: Refactor exception. ## 0.5.4 diff --git a/src/Exception/UnableToFindSuitableTransformerException.php b/src/MainTransformer/Exception/CannotFindTransformerException.php similarity index 72% rename from src/Exception/UnableToFindSuitableTransformerException.php rename to src/MainTransformer/Exception/CannotFindTransformerException.php index 446429d..c54a50f 100644 --- a/src/Exception/UnableToFindSuitableTransformerException.php +++ b/src/MainTransformer/Exception/CannotFindTransformerException.php @@ -11,13 +11,13 @@ * that was distributed with this source code. */ -namespace Rekalogika\Mapper\Exception; +namespace Rekalogika\Mapper\MainTransformer\Exception; use Rekalogika\Mapper\Transformer\Contracts\MixedType; use Rekalogika\Mapper\Util\TypeUtil; use Symfony\Component\PropertyInfo\Type; -class UnableToFindSuitableTransformerException extends NotMappableValueException +class CannotFindTransformerException extends \RuntimeException { /** * @param array $sourceTypes @@ -28,6 +28,6 @@ public function __construct(array $sourceTypes, array $targetTypes) $sourceTypes = TypeUtil::getDebugType($sourceTypes); $targetTypes = TypeUtil::getDebugType($targetTypes); - parent::__construct(sprintf('Unable to find a suitable transformer for mapping the source types "%s" to the target types "%s"', $sourceTypes, $sourceTypes)); + parent::__construct(sprintf('Cannot find a matching transformer for mapping the source types "%s" to the target types "%s"', $sourceTypes, $sourceTypes)); } } diff --git a/src/Exception/MapperReturnsUnexpectedValueException.php b/src/MainTransformer/Exception/TransformerReturnsUnexpectedValueException.php similarity index 61% rename from src/Exception/MapperReturnsUnexpectedValueException.php rename to src/MainTransformer/Exception/TransformerReturnsUnexpectedValueException.php index 7ca567a..6f0241d 100644 --- a/src/Exception/MapperReturnsUnexpectedValueException.php +++ b/src/MainTransformer/Exception/TransformerReturnsUnexpectedValueException.php @@ -11,18 +11,20 @@ * that was distributed with this source code. */ -namespace Rekalogika\Mapper\Exception; +namespace Rekalogika\Mapper\MainTransformer\Exception; +use Rekalogika\Mapper\Exception\UnexpectedValueException; +use Rekalogika\Mapper\Transformer\Contracts\MixedType; use Rekalogika\Mapper\Util\TypeUtil; use Symfony\Component\PropertyInfo\Type; -class MapperReturnsUnexpectedValueException extends UnexpectedValueException +class TransformerReturnsUnexpectedValueException extends UnexpectedValueException { - public function __construct(Type|null $type, mixed $target) + public function __construct(Type|MixedType $type, mixed $target) { $message = sprintf( 'Mapper returns unexpected value. Expected type "%s", but got "%s"', - $type === null ? 'unknown' : TypeUtil::getTypeString($type), + TypeUtil::getTypeString($type), get_debug_type($target), ); diff --git a/src/MainTransformer/MainTransformer.php b/src/MainTransformer/MainTransformer.php index 536cffa..c1d6059 100644 --- a/src/MainTransformer/MainTransformer.php +++ b/src/MainTransformer/MainTransformer.php @@ -14,7 +14,8 @@ namespace Rekalogika\Mapper\MainTransformer; use Rekalogika\Mapper\Exception\LogicException; -use Rekalogika\Mapper\Exception\UnableToFindSuitableTransformerException; +use Rekalogika\Mapper\MainTransformer\Exception\CannotFindTransformerException; +use Rekalogika\Mapper\MainTransformer\Exception\TransformerReturnsUnexpectedValueException; use Rekalogika\Mapper\ObjectCache\ObjectCache; use Rekalogika\Mapper\ObjectCache\ObjectCacheFactoryInterface; use Rekalogika\Mapper\Transformer\Contracts\MainTransformerAwareInterface; @@ -22,6 +23,7 @@ use Rekalogika\Mapper\Transformer\Contracts\TransformerInterface; use Rekalogika\Mapper\TransformerRegistry\TransformerRegistryInterface; use Rekalogika\Mapper\TypeResolver\TypeResolverInterface; +use Rekalogika\Mapper\Util\TypeCheck; use Symfony\Component\PropertyInfo\Type; class MainTransformer implements MainTransformerInterface @@ -150,9 +152,13 @@ public function transform( context: $context ); + if (!TypeCheck::isVariableInstanceOf($result, $targetType)) { + throw new TransformerReturnsUnexpectedValueException($targetType, $result); + } + return $result; } - throw new UnableToFindSuitableTransformerException($sourceTypes, $targetTypes); + throw new CannotFindTransformerException($sourceTypes, $targetTypes); } } diff --git a/src/Exception/CachedTargetObjectNotFoundException.php b/src/ObjectCache/Exception/CachedTargetObjectNotFoundException.php similarity index 77% rename from src/Exception/CachedTargetObjectNotFoundException.php rename to src/ObjectCache/Exception/CachedTargetObjectNotFoundException.php index c34e434..d45e825 100644 --- a/src/Exception/CachedTargetObjectNotFoundException.php +++ b/src/ObjectCache/Exception/CachedTargetObjectNotFoundException.php @@ -11,7 +11,9 @@ * that was distributed with this source code. */ -namespace Rekalogika\Mapper\Exception; +namespace Rekalogika\Mapper\ObjectCache\Exception; + +use Rekalogika\Mapper\Exception\RuntimeException; class CachedTargetObjectNotFoundException extends RuntimeException { diff --git a/src/Exception/CircularReferenceException.php b/src/ObjectCache/Exception/CircularReferenceException.php similarity index 74% rename from src/Exception/CircularReferenceException.php rename to src/ObjectCache/Exception/CircularReferenceException.php index a709ccb..49d923a 100644 --- a/src/Exception/CircularReferenceException.php +++ b/src/ObjectCache/Exception/CircularReferenceException.php @@ -11,12 +11,14 @@ * that was distributed with this source code. */ -namespace Rekalogika\Mapper\Exception; +namespace Rekalogika\Mapper\ObjectCache\Exception; +use Rekalogika\Mapper\Exception\ExceptionInterface; +use Rekalogika\Mapper\Exception\RuntimeException; use Rekalogika\Mapper\Util\TypeUtil; use Symfony\Component\PropertyInfo\Type; -class CircularReferenceException extends \RuntimeException implements ExceptionInterface +class CircularReferenceException extends RuntimeException implements ExceptionInterface { public function __construct(mixed $source, Type $targetType) { diff --git a/src/Exception/NonSimpleTypeException.php b/src/ObjectCache/Exception/NonSimpleTypeException.php similarity index 84% rename from src/Exception/NonSimpleTypeException.php rename to src/ObjectCache/Exception/NonSimpleTypeException.php index df56152..47040c8 100644 --- a/src/Exception/NonSimpleTypeException.php +++ b/src/ObjectCache/Exception/NonSimpleTypeException.php @@ -11,8 +11,9 @@ * that was distributed with this source code. */ -namespace Rekalogika\Mapper\Exception; +namespace Rekalogika\Mapper\ObjectCache\Exception; +use Rekalogika\Mapper\Exception\UnexpectedValueException; use Rekalogika\Mapper\Util\TypeUtil; use Symfony\Component\PropertyInfo\Type; diff --git a/src/ObjectCache/ObjectCache.php b/src/ObjectCache/ObjectCache.php index 611c52e..6e7f9e2 100644 --- a/src/ObjectCache/ObjectCache.php +++ b/src/ObjectCache/ObjectCache.php @@ -13,10 +13,10 @@ namespace Rekalogika\Mapper\ObjectCache; -use Rekalogika\Mapper\Exception\CachedTargetObjectNotFoundException; -use Rekalogika\Mapper\Exception\CircularReferenceException; use Rekalogika\Mapper\Exception\LogicException; -use Rekalogika\Mapper\Exception\NonSimpleTypeException; +use Rekalogika\Mapper\ObjectCache\Exception\CachedTargetObjectNotFoundException; +use Rekalogika\Mapper\ObjectCache\Exception\CircularReferenceException; +use Rekalogika\Mapper\ObjectCache\Exception\NonSimpleTypeException; use Rekalogika\Mapper\TypeResolver\TypeResolverInterface; use Symfony\Component\PropertyInfo\Type; diff --git a/src/Transformer/ArrayToObjectTransformer.php b/src/Transformer/ArrayToObjectTransformer.php index a383da0..b0d467b 100644 --- a/src/Transformer/ArrayToObjectTransformer.php +++ b/src/Transformer/ArrayToObjectTransformer.php @@ -14,9 +14,9 @@ namespace Rekalogika\Mapper\Transformer; use Rekalogika\Mapper\Exception\InvalidArgumentException; -use Rekalogika\Mapper\Exception\InvalidTypeInArgumentException; use Rekalogika\Mapper\Transformer\Contracts\TransformerInterface; use Rekalogika\Mapper\Transformer\Contracts\TypeMapping; +use Rekalogika\Mapper\Transformer\Exception\InvalidTypeInArgumentException; use Rekalogika\Mapper\Util\TypeCheck; use Rekalogika\Mapper\Util\TypeFactory; use Symfony\Component\PropertyInfo\Type; diff --git a/src/Transformer/Contracts/TransformerInterface.php b/src/Transformer/Contracts/TransformerInterface.php index 79af606..08f37ac 100644 --- a/src/Transformer/Contracts/TransformerInterface.php +++ b/src/Transformer/Contracts/TransformerInterface.php @@ -13,10 +13,10 @@ namespace Rekalogika\Mapper\Transformer\Contracts; -use Rekalogika\Mapper\Exception\CircularReferenceException; use Rekalogika\Mapper\Exception\ExceptionInterface; use Rekalogika\Mapper\Exception\InvalidArgumentException; use Rekalogika\Mapper\Exception\LogicException; +use Rekalogika\Mapper\ObjectCache\Exception\CircularReferenceException; use Symfony\Component\PropertyInfo\Type; interface TransformerInterface diff --git a/src/Exception/ClassNotInstantiableException.php b/src/Transformer/Exception/ClassNotInstantiableException.php similarity index 91% rename from src/Exception/ClassNotInstantiableException.php rename to src/Transformer/Exception/ClassNotInstantiableException.php index f87500f..1cc6b1a 100644 --- a/src/Exception/ClassNotInstantiableException.php +++ b/src/Transformer/Exception/ClassNotInstantiableException.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\Mapper\Exception; +namespace Rekalogika\Mapper\Transformer\Exception; class ClassNotInstantiableException extends NotMappableValueException { diff --git a/src/Exception/IncompleteConstructorArgument.php b/src/Transformer/Exception/IncompleteConstructorArgument.php similarity index 94% rename from src/Exception/IncompleteConstructorArgument.php rename to src/Transformer/Exception/IncompleteConstructorArgument.php index f827f90..4bf6262 100644 --- a/src/Exception/IncompleteConstructorArgument.php +++ b/src/Transformer/Exception/IncompleteConstructorArgument.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\Mapper\Exception; +namespace Rekalogika\Mapper\Transformer\Exception; class IncompleteConstructorArgument extends NotMappableValueException { diff --git a/src/Exception/InstantiationFailureException.php b/src/Transformer/Exception/InstantiationFailureException.php similarity index 97% rename from src/Exception/InstantiationFailureException.php rename to src/Transformer/Exception/InstantiationFailureException.php index 61e619d..81acbdb 100644 --- a/src/Exception/InstantiationFailureException.php +++ b/src/Transformer/Exception/InstantiationFailureException.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\Mapper\Exception; +namespace Rekalogika\Mapper\Transformer\Exception; class InstantiationFailureException extends NotMappableValueException { diff --git a/src/Exception/InvalidClassException.php b/src/Transformer/Exception/InvalidClassException.php similarity index 85% rename from src/Exception/InvalidClassException.php rename to src/Transformer/Exception/InvalidClassException.php index dd27f24..f024a84 100644 --- a/src/Exception/InvalidClassException.php +++ b/src/Transformer/Exception/InvalidClassException.php @@ -11,8 +11,9 @@ * that was distributed with this source code. */ -namespace Rekalogika\Mapper\Exception; +namespace Rekalogika\Mapper\Transformer\Exception; +use Rekalogika\Mapper\Exception\UnexpectedValueException; use Rekalogika\Mapper\Util\TypeUtil; use Symfony\Component\PropertyInfo\Type; diff --git a/src/Exception/InvalidTypeInArgumentException.php b/src/Transformer/Exception/InvalidTypeInArgumentException.php similarity index 84% rename from src/Exception/InvalidTypeInArgumentException.php rename to src/Transformer/Exception/InvalidTypeInArgumentException.php index a8778d6..3b728dd 100644 --- a/src/Exception/InvalidTypeInArgumentException.php +++ b/src/Transformer/Exception/InvalidTypeInArgumentException.php @@ -11,8 +11,9 @@ * that was distributed with this source code. */ -namespace Rekalogika\Mapper\Exception; +namespace Rekalogika\Mapper\Transformer\Exception; +use Rekalogika\Mapper\Exception\InvalidArgumentException; use Rekalogika\Mapper\Util\TypeUtil; use Symfony\Component\PropertyInfo\Type; diff --git a/src/Exception/MissingMemberKeyTypeException.php b/src/Transformer/Exception/MissingMemberKeyTypeException.php similarity index 95% rename from src/Exception/MissingMemberKeyTypeException.php rename to src/Transformer/Exception/MissingMemberKeyTypeException.php index 3fe22e1..5e41b06 100644 --- a/src/Exception/MissingMemberKeyTypeException.php +++ b/src/Transformer/Exception/MissingMemberKeyTypeException.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\Mapper\Exception; +namespace Rekalogika\Mapper\Transformer\Exception; use Rekalogika\Mapper\Transformer\Contracts\MixedType; use Rekalogika\Mapper\Util\TypeUtil; diff --git a/src/Exception/MissingMemberTypeException.php b/src/Transformer/Exception/MissingMemberTypeException.php similarity index 87% rename from src/Exception/MissingMemberTypeException.php rename to src/Transformer/Exception/MissingMemberTypeException.php index 91c92bb..0b94e5b 100644 --- a/src/Exception/MissingMemberTypeException.php +++ b/src/Transformer/Exception/MissingMemberTypeException.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\Mapper\Exception; +namespace Rekalogika\Mapper\Transformer\Exception; abstract class MissingMemberTypeException extends NotMappableValueException { diff --git a/src/Exception/MissingMemberValueTypeException.php b/src/Transformer/Exception/MissingMemberValueTypeException.php similarity index 95% rename from src/Exception/MissingMemberValueTypeException.php rename to src/Transformer/Exception/MissingMemberValueTypeException.php index 75b633d..0a2172b 100644 --- a/src/Exception/MissingMemberValueTypeException.php +++ b/src/Transformer/Exception/MissingMemberValueTypeException.php @@ -11,7 +11,7 @@ * that was distributed with this source code. */ -namespace Rekalogika\Mapper\Exception; +namespace Rekalogika\Mapper\Transformer\Exception; use Rekalogika\Mapper\Transformer\Contracts\MixedType; use Rekalogika\Mapper\Util\TypeUtil; diff --git a/src/Exception/NotMappableValueException.php b/src/Transformer/Exception/NotMappableValueException.php similarity index 76% rename from src/Exception/NotMappableValueException.php rename to src/Transformer/Exception/NotMappableValueException.php index 1552e2b..71064c8 100644 --- a/src/Exception/NotMappableValueException.php +++ b/src/Transformer/Exception/NotMappableValueException.php @@ -11,7 +11,9 @@ * that was distributed with this source code. */ -namespace Rekalogika\Mapper\Exception; +namespace Rekalogika\Mapper\Transformer\Exception; + +use Rekalogika\Mapper\Exception\UnexpectedValueException; abstract class NotMappableValueException extends UnexpectedValueException { diff --git a/src/Transformer/ObjectToObjectTransformer.php b/src/Transformer/ObjectToObjectTransformer.php index 01436bc..a418a4f 100644 --- a/src/Transformer/ObjectToObjectTransformer.php +++ b/src/Transformer/ObjectToObjectTransformer.php @@ -13,18 +13,18 @@ namespace Rekalogika\Mapper\Transformer; -use Rekalogika\Mapper\Exception\CachedTargetObjectNotFoundException; -use Rekalogika\Mapper\Exception\ClassNotInstantiableException; -use Rekalogika\Mapper\Exception\IncompleteConstructorArgument; -use Rekalogika\Mapper\Exception\InstantiationFailureException; use Rekalogika\Mapper\Exception\InvalidArgumentException; -use Rekalogika\Mapper\Exception\InvalidClassException; use Rekalogika\Mapper\MainTransformer\MainTransformer; +use Rekalogika\Mapper\ObjectCache\Exception\CachedTargetObjectNotFoundException; use Rekalogika\Mapper\ObjectCache\ObjectCacheFactoryInterface; use Rekalogika\Mapper\Transformer\Contracts\MainTransformerAwareInterface; use Rekalogika\Mapper\Transformer\Contracts\MainTransformerAwareTrait; use Rekalogika\Mapper\Transformer\Contracts\TransformerInterface; use Rekalogika\Mapper\Transformer\Contracts\TypeMapping; +use Rekalogika\Mapper\Transformer\Exception\ClassNotInstantiableException; +use Rekalogika\Mapper\Transformer\Exception\IncompleteConstructorArgument; +use Rekalogika\Mapper\Transformer\Exception\InstantiationFailureException; +use Rekalogika\Mapper\Transformer\Exception\InvalidClassException; use Rekalogika\Mapper\TypeResolver\TypeResolverInterface; use Rekalogika\Mapper\Util\TypeCheck; use Rekalogika\Mapper\Util\TypeFactory; diff --git a/src/Transformer/StringToBackedEnumTransformer.php b/src/Transformer/StringToBackedEnumTransformer.php index f8f37ea..2bba1de 100644 --- a/src/Transformer/StringToBackedEnumTransformer.php +++ b/src/Transformer/StringToBackedEnumTransformer.php @@ -16,6 +16,7 @@ use Rekalogika\Mapper\Exception\InvalidArgumentException; use Rekalogika\Mapper\Transformer\Contracts\TransformerInterface; use Rekalogika\Mapper\Transformer\Contracts\TypeMapping; +use Rekalogika\Mapper\Transformer\Exception\InvalidTypeInArgumentException; use Rekalogika\Mapper\Util\TypeFactory; use Symfony\Component\PropertyInfo\Type; @@ -35,7 +36,7 @@ public function transform( $class = $targetType?->getClassName(); if ($class === null || !\enum_exists($class)) { - throw new InvalidArgumentException(sprintf('Target must be an enum class-string, "%s" given', get_debug_type($class))); + throw new InvalidTypeInArgumentException('Target must be an enum class-string, "%s" given', $targetType); } // @todo maybe add option to handle values not in the enum diff --git a/src/Transformer/TraversableToArrayAccessTransformer.php b/src/Transformer/TraversableToArrayAccessTransformer.php index 1072f35..3726919 100644 --- a/src/Transformer/TraversableToArrayAccessTransformer.php +++ b/src/Transformer/TraversableToArrayAccessTransformer.php @@ -15,16 +15,17 @@ use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; -use Rekalogika\Mapper\Exception\CachedTargetObjectNotFoundException; use Rekalogika\Mapper\Exception\InvalidArgumentException; -use Rekalogika\Mapper\Exception\InvalidTypeInArgumentException; -use Rekalogika\Mapper\Exception\MissingMemberKeyTypeException; use Rekalogika\Mapper\MainTransformer\MainTransformer; +use Rekalogika\Mapper\ObjectCache\Exception\CachedTargetObjectNotFoundException; use Rekalogika\Mapper\ObjectCache\ObjectCacheFactoryInterface; use Rekalogika\Mapper\Transformer\Contracts\MainTransformerAwareInterface; use Rekalogika\Mapper\Transformer\Contracts\MainTransformerAwareTrait; use Rekalogika\Mapper\Transformer\Contracts\TransformerInterface; use Rekalogika\Mapper\Transformer\Contracts\TypeMapping; +use Rekalogika\Mapper\Transformer\Exception\ClassNotInstantiableException; +use Rekalogika\Mapper\Transformer\Exception\InvalidTypeInArgumentException; +use Rekalogika\Mapper\Transformer\Exception\MissingMemberKeyTypeException; use Rekalogika\Mapper\Util\TypeCheck; use Rekalogika\Mapper\Util\TypeFactory; use Symfony\Component\PropertyInfo\Type; @@ -193,7 +194,7 @@ private function instantiateArrayAccessOrArray( try { $result = $reflectionClass->newInstance(); } catch (\ReflectionException) { - throw new InvalidArgumentException(sprintf('We do not know how to instantiate class "%s"', $class)); + throw new ClassNotInstantiableException($class); } if (!$result instanceof \ArrayAccess) { diff --git a/src/Transformer/TraversableToTraversableTransformer.php b/src/Transformer/TraversableToTraversableTransformer.php index 0010c0b..370db40 100644 --- a/src/Transformer/TraversableToTraversableTransformer.php +++ b/src/Transformer/TraversableToTraversableTransformer.php @@ -13,16 +13,16 @@ namespace Rekalogika\Mapper\Transformer; -use Rekalogika\Mapper\Exception\CachedTargetObjectNotFoundException; use Rekalogika\Mapper\Exception\InvalidArgumentException; -use Rekalogika\Mapper\Exception\MissingMemberKeyTypeException; -use Rekalogika\Mapper\Exception\MissingMemberValueTypeException; use Rekalogika\Mapper\MainTransformer\MainTransformer; +use Rekalogika\Mapper\ObjectCache\Exception\CachedTargetObjectNotFoundException; use Rekalogika\Mapper\ObjectCache\ObjectCacheFactoryInterface; use Rekalogika\Mapper\Transformer\Contracts\MainTransformerAwareInterface; use Rekalogika\Mapper\Transformer\Contracts\MainTransformerAwareTrait; use Rekalogika\Mapper\Transformer\Contracts\TransformerInterface; use Rekalogika\Mapper\Transformer\Contracts\TypeMapping; +use Rekalogika\Mapper\Transformer\Exception\MissingMemberKeyTypeException; +use Rekalogika\Mapper\Transformer\Exception\MissingMemberValueTypeException; use Rekalogika\Mapper\Transformer\Model\TraversableCountableWrapper; use Rekalogika\Mapper\Util\TypeCheck; use Rekalogika\Mapper\Util\TypeFactory; diff --git a/src/Util/TypeCheck.php b/src/Util/TypeCheck.php index 11efb61..49ef7de 100644 --- a/src/Util/TypeCheck.php +++ b/src/Util/TypeCheck.php @@ -112,9 +112,26 @@ public static function isEnum(?Type $type): bool if ($type === null) { return false; } + + $class = $type->getClassName(); + return $type->getBuiltinType() === Type::BUILTIN_TYPE_OBJECT - && $type->getClassName() !== null - && enum_exists($type->getClassName()); + && $class !== null + && enum_exists($class); + } + + public static function isBackedEnum(?Type $type): bool + { + if ($type === null) { + return false; + } + + $class = $type->getClassName(); + + return $type->getBuiltinType() === Type::BUILTIN_TYPE_OBJECT + && $class !== null + && enum_exists($class) + && is_a($class, \BackedEnum::class, true); } public static function isResource(?Type $type): bool @@ -212,8 +229,12 @@ public static function isTypeInstanceOf( /** * @todo support generics */ - public static function isVariableInstanceOf(mixed $variable, Type $type): bool + public static function isVariableInstanceOf(mixed $variable, Type|MixedType $type): bool { + if ($type instanceof MixedType) { + return true; + } + if (self::isObject($type)) { $class = $type->getClassName(); diff --git a/src/Util/TypeUtil.php b/src/Util/TypeUtil.php index bff2751..493bf0f 100644 --- a/src/Util/TypeUtil.php +++ b/src/Util/TypeUtil.php @@ -14,9 +14,8 @@ namespace Rekalogika\Mapper\Util; use DaveLiddament\PhpLanguageExtensions\Friend; -use DaveLiddament\PhpLanguageExtensions\NamespaceVisibility; use Rekalogika\Mapper\Exception\InvalidArgumentException; -use Rekalogika\Mapper\Exception\MapperReturnsUnexpectedValueException; +use Rekalogika\Mapper\MainTransformer\Exception\TransformerReturnsUnexpectedValueException; use Rekalogika\Mapper\Tests\UnitTest\Util\TypeUtil2Test; use Rekalogika\Mapper\Tests\UnitTest\Util\TypeUtilTest; use Rekalogika\Mapper\Transformer\Contracts\MixedType; @@ -231,7 +230,6 @@ class: $type->getClassName(), * @param null|Type|MixedType|array $type * @return string */ - #[NamespaceVisibility(namespace: 'Rekalogika\Mapper\Exception')] public static function getDebugType(null|Type|MixedType|array $type): string { if ($type === null) { @@ -260,7 +258,7 @@ public static function getDebugType(null|Type|MixedType|array $type): string */ #[Friend( TypeResolver::class, - MapperReturnsUnexpectedValueException::class, + TransformerReturnsUnexpectedValueException::class, TypeUtilTest::class )] public static function getTypeString(Type|MixedType $type): string diff --git a/tests/IntegrationTest/ConstructorTest.php b/tests/IntegrationTest/ConstructorTest.php index 2d1b538..b7afd2a 100644 --- a/tests/IntegrationTest/ConstructorTest.php +++ b/tests/IntegrationTest/ConstructorTest.php @@ -13,9 +13,6 @@ namespace Rekalogika\Mapper\Tests\IntegrationTest; -use Rekalogika\Mapper\Exception\ClassNotInstantiableException; -use Rekalogika\Mapper\Exception\IncompleteConstructorArgument; -use Rekalogika\Mapper\Exception\InstantiationFailureException; use Rekalogika\Mapper\Tests\Common\AbstractIntegrationTest; use Rekalogika\Mapper\Tests\Fixtures\Constructor\ObjectWithConstructorAndMoreArgumentDto; use Rekalogika\Mapper\Tests\Fixtures\Constructor\ObjectWithConstructorAndPropertiesDto; @@ -23,6 +20,9 @@ use Rekalogika\Mapper\Tests\Fixtures\Constructor\ObjectWithPrivateConstructorDto; use Rekalogika\Mapper\Tests\Fixtures\Scalar\ObjectWithScalarProperties; use Rekalogika\Mapper\Tests\Fixtures\Scalar\ObjectWithScalarPropertiesAndAdditionalNullProperty; +use Rekalogika\Mapper\Transformer\Exception\ClassNotInstantiableException; +use Rekalogika\Mapper\Transformer\Exception\IncompleteConstructorArgument; +use Rekalogika\Mapper\Transformer\Exception\InstantiationFailureException; class ConstructorTest extends AbstractIntegrationTest { diff --git a/tests/UnitTest/Model/ObjectCacheTest.php b/tests/UnitTest/Model/ObjectCacheTest.php index c57f911..6c67198 100644 --- a/tests/UnitTest/Model/ObjectCacheTest.php +++ b/tests/UnitTest/Model/ObjectCacheTest.php @@ -34,7 +34,7 @@ public function testObjectCache(): void $this->assertTrue($objectCache->containsTarget($source, TypeFactory::int())); $this->assertSame($target, $objectCache->getTarget($source, TypeFactory::int())); - $this->expectException(\Rekalogika\Mapper\Exception\CachedTargetObjectNotFoundException::class); + $this->expectException(\Rekalogika\Mapper\ObjectCache\Exception\CachedTargetObjectNotFoundException::class); $objectCache->getTarget($source, TypeFactory::float()); } }