Skip to content

Commit 3643152

Browse files
committed
test: decorate name converter as symfony interface changed
1 parent 23a9f2a commit 3643152

File tree

6 files changed

+75
-47
lines changed

6 files changed

+75
-47
lines changed

features/openapi/docs.feature

Lines changed: 20 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -409,38 +409,26 @@ Feature: Documentation support
409409
Then the response status code should be 200
410410
And the response should be in JSON
411411
And the JSON node "openapi" should be equal to "3.0.0"
412-
And the JSON node "components.schemas.DummyBoolean" should be equal to:
412+
And the JSON node "components.schemas.DummyBoolean.properties.id.anyOf" should be equal to:
413413
"""
414-
{
415-
"type": "object",
416-
"description": "",
417-
"deprecated": false,
418-
"properties": {
419-
"id": {
420-
"readOnly": true,
421-
"anyOf": [
422-
{
423-
"type": "integer"
424-
},
425-
{
426-
"type": "null"
427-
}
428-
]
429-
},
430-
"isDummyBoolean": {
431-
"anyOf": [
432-
{
433-
"type": "boolean"
434-
},
435-
{
436-
"type": "null"
437-
}
438-
]
439-
},
440-
"dummyBoolean": {
441-
"readOnly": true,
442-
"type": "boolean"
443-
}
414+
[
415+
{
416+
"type": "integer"
417+
},
418+
{
419+
"type": "null"
444420
}
445-
}
421+
]
422+
"""
423+
And the JSON node "components.schemas.DummyBoolean.properties.isDummyBoolean.anyOf" should be equal to:
424+
"""
425+
[
426+
{
427+
"type": "boolean"
428+
},
429+
{
430+
"type": "null"
431+
}
432+
]
446433
"""
434+
And the JSON node "components.schemas.DummyBoolean.properties.isDummyBoolean.owl:maxCardinality" should not exist

src/Doctrine/Odm/Tests/Fixtures/CustomConverter.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,28 @@
1414
namespace ApiPlatform\Doctrine\Odm\Tests\Fixtures;
1515

1616
use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter;
17+
use Symfony\Component\Serializer\NameConverter\NameConverterInterface;
1718

1819
/**
1920
* Custom converter that will only convert a property named "nameConverted"
2021
* with the same logic as Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter.
2122
*/
22-
class CustomConverter extends CamelCaseToSnakeCaseNameConverter
23+
class CustomConverter implements NameConverterInterface
2324
{
25+
private NameConverterInterface $nameConverter;
26+
27+
public function __construct()
28+
{
29+
$this->nameConverter = new CamelCaseToSnakeCaseNameConverter();
30+
}
31+
2432
public function normalize(string $propertyName): string
2533
{
26-
return 'nameConverted' === $propertyName ? parent::normalize($propertyName) : $propertyName;
34+
return 'nameConverted' === $propertyName ? $this->nameConverter->normalize($propertyName) : $propertyName;
2735
}
2836

2937
public function denormalize(string $propertyName): string
3038
{
31-
return 'name_converted' === $propertyName ? parent::denormalize($propertyName) : $propertyName;
39+
return 'name_converted' === $propertyName ? $this->nameConverter->denormalize($propertyName) : $propertyName;
3240
}
3341
}

src/Doctrine/Orm/Tests/Fixtures/CustomConverter.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,28 @@
1414
namespace ApiPlatform\Doctrine\Orm\Tests\Fixtures;
1515

1616
use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter;
17+
use Symfony\Component\Serializer\NameConverter\NameConverterInterface;
1718

1819
/**
1920
* Custom converter that will only convert a property named "nameConverted"
2021
* with the same logic as Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter.
2122
*/
22-
class CustomConverter extends CamelCaseToSnakeCaseNameConverter
23+
class CustomConverter implements NameConverterInterface
2324
{
25+
private NameConverterInterface $nameConverter;
26+
27+
public function __construct()
28+
{
29+
$this->nameConverter = new CamelCaseToSnakeCaseNameConverter();
30+
}
31+
2432
public function normalize(string $propertyName): string
2533
{
26-
return 'nameConverted' === $propertyName ? parent::normalize($propertyName) : $propertyName;
34+
return 'nameConverted' === $propertyName ? $this->nameConverter->normalize($propertyName) : $propertyName;
2735
}
2836

2937
public function denormalize(string $propertyName): string
3038
{
31-
return 'name_converted' === $propertyName ? parent::denormalize($propertyName) : $propertyName;
39+
return 'name_converted' === $propertyName ? $this->nameConverter->denormalize($propertyName) : $propertyName;
3240
}
3341
}

src/GraphQl/Tests/Fixtures/Serializer/NameConverter/CustomConverter.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,28 @@
1414
namespace ApiPlatform\GraphQl\Tests\Fixtures\Serializer\NameConverter;
1515

1616
use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter;
17+
use Symfony\Component\Serializer\NameConverter\NameConverterInterface;
1718

1819
/**
1920
* Custom converter that will only convert a property named "nameConverted"
2021
* with the same logic as Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter.
2122
*/
22-
class CustomConverter extends CamelCaseToSnakeCaseNameConverter
23+
class CustomConverter implements NameConverterInterface
2324
{
25+
private NameConverterInterface $nameConverter;
26+
27+
public function __construct()
28+
{
29+
$this->nameConverter = new CamelCaseToSnakeCaseNameConverter();
30+
}
31+
2432
public function normalize(string $propertyName): string
2533
{
26-
return 'nameConverted' === $propertyName ? parent::normalize($propertyName) : $propertyName;
34+
return 'nameConverted' === $propertyName ? $this->nameConverter->normalize($propertyName) : $propertyName;
2735
}
2836

2937
public function denormalize(string $propertyName): string
3038
{
31-
return 'name_converted' === $propertyName ? parent::denormalize($propertyName) : $propertyName;
39+
return 'name_converted' === $propertyName ? $this->nameConverter->denormalize($propertyName) : $propertyName;
3240
}
3341
}

src/Serializer/Tests/Fixtures/Serializer/NameConverter/CustomConverter.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,28 @@
1414
namespace ApiPlatform\Serializer\Tests\Fixtures\Serializer\NameConverter;
1515

1616
use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter;
17+
use Symfony\Component\Serializer\NameConverter\NameConverterInterface;
1718

1819
/**
1920
* Custom converter that will only convert a property named "nameConverted"
2021
* with the same logic as Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter.
2122
*/
22-
final class CustomConverter extends CamelCaseToSnakeCaseNameConverter
23+
class CustomConverter implements NameConverterInterface
2324
{
25+
private NameConverterInterface $nameConverter;
26+
27+
public function __construct()
28+
{
29+
$this->nameConverter = new CamelCaseToSnakeCaseNameConverter();
30+
}
31+
2432
public function normalize(string $propertyName): string
2533
{
26-
return 'nameConverted' === $propertyName ? parent::normalize($propertyName) : $propertyName;
34+
return 'nameConverted' === $propertyName ? $this->nameConverter->normalize($propertyName) : $propertyName;
2735
}
2836

2937
public function denormalize(string $propertyName): string
3038
{
31-
return 'name_converted' === $propertyName ? parent::denormalize($propertyName) : $propertyName;
39+
return 'name_converted' === $propertyName ? $this->nameConverter->denormalize($propertyName) : $propertyName;
3240
}
3341
}

tests/Fixtures/TestBundle/Serializer/NameConverter/CustomConverter.php

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,28 @@
1414
namespace ApiPlatform\Tests\Fixtures\TestBundle\Serializer\NameConverter;
1515

1616
use Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter;
17+
use Symfony\Component\Serializer\NameConverter\NameConverterInterface;
1718

1819
/**
1920
* Custom converter that will only convert a property named "nameConverted"
2021
* with the same logic as Symfony\Component\Serializer\NameConverter\CamelCaseToSnakeCaseNameConverter.
2122
*/
22-
class CustomConverter extends CamelCaseToSnakeCaseNameConverter
23+
class CustomConverter implements NameConverterInterface
2324
{
25+
private NameConverterInterface $nameConverter;
26+
27+
public function __construct()
28+
{
29+
$this->nameConverter = new CamelCaseToSnakeCaseNameConverter();
30+
}
31+
2432
public function normalize(string $propertyName): string
2533
{
26-
return 'nameConverted' === $propertyName ? parent::normalize($propertyName) : $propertyName;
34+
return 'nameConverted' === $propertyName ? $this->nameConverter->normalize($propertyName) : $propertyName;
2735
}
2836

2937
public function denormalize(string $propertyName): string
3038
{
31-
return 'name_converted' === $propertyName ? parent::denormalize($propertyName) : $propertyName;
39+
return 'name_converted' === $propertyName ? $this->nameConverter->denormalize($propertyName) : $propertyName;
3240
}
3341
}

0 commit comments

Comments
 (0)