Skip to content

Commit 0bb0bb5

Browse files
committed
Improve test so that the DTO can fallback to the same class but with some modified data if needed
1 parent c5425e2 commit 0bb0bb5

File tree

4 files changed

+14
-2
lines changed

4 files changed

+14
-2
lines changed

features/jsonld/input_output.feature

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ Feature: JSON-LD DTO input and output
116116
"@id": "/dummy_dto_output_fallback_to_same_classes/1",
117117
"@type": "DummyDtoOutputFallbackToSameClass",
118118
"lorem": "test",
119-
"ipsum": "1",
119+
"ipsum": "modified",
120120
"id": 1
121121
}
122122
"""

src/JsonLd/Serializer/ItemNormalizer.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public function normalize($object, $format = null, array $context = [])
6767
{
6868
$objectClass = $this->getObjectClass($object);
6969
$outputClass = $this->getOutputClass($objectClass, $context);
70+
7071
if (null !== $outputClass && !isset($context[self::IS_TRANSFORMED_TO_SAME_CLASS_CONTEXT_KEY])) {
7172
return parent::normalize($object, $format, $context);
7273
}

tests/Fixtures/TestBundle/DataTransformer/OutputDtoUnmodifiedDataTransformer.php renamed to tests/Fixtures/TestBundle/DataTransformer/OutputDtoFallbackSameClassTransformer.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,18 @@
2222
*
2323
* @author Daniel West <[email protected]>
2424
*/
25-
final class OutputDtoUnmodifiedDataTransformer implements DataTransformerInterface
25+
final class OutputDtoFallbackSameClassTransformer implements DataTransformerInterface
2626
{
2727
/**
2828
* {@inheritdoc}
2929
*/
3030
public function transform($object, string $to, array $context = [])
3131
{
32+
if (!$object instanceof DummyDtoOutputFallbackToSameClass) {
33+
throw new \InvalidArgumentException();
34+
}
35+
$object->ipsum = 'modified';
36+
3237
return $object;
3338
}
3439

tests/Fixtures/app/config/config_common.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,12 @@ services:
226226
tags:
227227
- { name: 'api_platform.data_transformer' }
228228

229+
app.data_transformer.custom_output_dto_fallback_same_class:
230+
class: 'ApiPlatform\Core\Tests\Fixtures\TestBundle\DataTransformer\OutputDtoFallbackSameClassTransformer'
231+
public: false
232+
tags:
233+
- { name: 'api_platform.data_transformer' }
234+
229235
app.data_transformer.input_dto:
230236
class: 'ApiPlatform\Core\Tests\Fixtures\TestBundle\DataTransformer\InputDtoDataTransformer'
231237
public: false

0 commit comments

Comments
 (0)