• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

api-platform / core / 15040977736

15 May 2025 09:02AM UTC coverage: 21.754% (+13.3%) from 8.423%
15040977736

Pull #6960

github

web-flow
Merge 7a7a13526 into 1862d03b7
Pull Request #6960: feat(json-schema): mutualize json schema between formats

320 of 460 new or added lines in 24 files covered. (69.57%)

1863 existing lines in 109 files now uncovered.

11069 of 50882 relevant lines covered (21.75%)

29.49 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/JsonSchema/Tests/DefinitionNameFactoryTest.php
1
<?php
2

3
/*
4
 * This file is part of the API Platform project.
5
 *
6
 * (c) Kévin Dunglas <dunglas@gmail.com>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11

12
declare(strict_types=1);
13

14
namespace ApiPlatform\JsonSchema\Tests;
15

16
use ApiPlatform\JsonSchema\DefinitionNameFactory;
17
use ApiPlatform\JsonSchema\SchemaFactory;
18
use ApiPlatform\Metadata\Get;
19
use ApiPlatform\Metadata\Operation;
20
use ApiPlatform\Tests\Fixtures\TestBundle\ApiResource\DtoOutput;
21
use ApiPlatform\Tests\Fixtures\TestBundle\Entity\Dummy;
22
use PHPUnit\Framework\TestCase;
23
use Symfony\Component\Serializer\Normalizer\AbstractNormalizer;
24

25
final class DefinitionNameFactoryTest extends TestCase
26
{
27
    public static function providerDefinitions(): iterable
28
    {
29
        yield ['Dummy', Dummy::class, 'json'];
×
30
        yield ['Dummy.jsonapi', Dummy::class, 'jsonapi'];
×
31
        yield ['Dummy.jsonhal', Dummy::class, 'jsonhal'];
×
32
        yield ['Dummy.jsonld', Dummy::class, 'jsonld'];
×
33

34
        yield ['Dummy.DtoOutput', Dummy::class, 'json', DtoOutput::class];
×
35
        yield ['Dummy.DtoOutput.jsonapi', Dummy::class, 'jsonapi', DtoOutput::class];
×
36
        yield ['Dummy.DtoOutput.jsonhal', Dummy::class, 'jsonhal', DtoOutput::class];
×
37
        yield ['Dummy.DtoOutput.jsonld', Dummy::class, 'jsonld', DtoOutput::class];
×
38

39
        yield ['Bar', Dummy::class, 'json', null, new Get(shortName: 'Bar')];
×
40
        yield ['Bar.jsonapi', Dummy::class, 'jsonapi', null, new Get(shortName: 'Bar')];
×
41
        yield ['Bar.jsonhal', Dummy::class, 'jsonhal', null, new Get(shortName: 'Bar')];
×
42
        yield ['Bar.jsonld', Dummy::class, 'jsonld', null, new Get(shortName: 'Bar')];
×
43

44
        yield ['Dummy-Baz', Dummy::class, 'json', null, null, [SchemaFactory::OPENAPI_DEFINITION_NAME => 'Baz']];
×
45
        yield ['Dummy.jsonapi-Baz', Dummy::class, 'jsonapi', null, null, [SchemaFactory::OPENAPI_DEFINITION_NAME => 'Baz']];
×
46
        yield ['Dummy.jsonhal-Baz', Dummy::class, 'jsonhal', null, null, [SchemaFactory::OPENAPI_DEFINITION_NAME => 'Baz']];
×
47
        yield ['Dummy.jsonld-Baz', Dummy::class, 'jsonld', null, null, [SchemaFactory::OPENAPI_DEFINITION_NAME => 'Baz']];
×
48

49
        yield ['Dummy-read', Dummy::class, 'json', null, null, [AbstractNormalizer::GROUPS => ['read']]];
×
50
        yield ['Dummy.jsonapi-read', Dummy::class, 'jsonapi', null, null, [AbstractNormalizer::GROUPS => ['read']]];
×
51
        yield ['Dummy.jsonhal-read', Dummy::class, 'jsonhal', null, null, [AbstractNormalizer::GROUPS => ['read']]];
×
52
        yield ['Dummy.jsonld-read', Dummy::class, 'jsonld', null, null, [AbstractNormalizer::GROUPS => ['read']]];
×
53

54
        yield ['Dummy-read_write', Dummy::class, 'json', null, null, [AbstractNormalizer::GROUPS => ['read', 'write']]];
×
55
        yield ['Dummy.jsonapi-read_write', Dummy::class, 'jsonapi', null, null, [AbstractNormalizer::GROUPS => ['read', 'write']]];
×
56
        yield ['Dummy.jsonhal-read_write', Dummy::class, 'jsonhal', null, null, [AbstractNormalizer::GROUPS => ['read', 'write']]];
×
57
        yield ['Dummy.jsonld-read_write', Dummy::class, 'jsonld', null, null, [AbstractNormalizer::GROUPS => ['read', 'write']]];
×
58

59
        yield ['Bar.DtoOutput-read_write', Dummy::class, 'json', DtoOutput::class, new Get(shortName: 'Bar'), [AbstractNormalizer::GROUPS => ['read', 'write']]];
×
60
        yield ['Bar.DtoOutput.jsonapi-read_write', Dummy::class, 'jsonapi', DtoOutput::class, new Get(shortName: 'Bar'), [AbstractNormalizer::GROUPS => ['read', 'write']]];
×
61
        yield ['Bar.DtoOutput.jsonhal-read_write', Dummy::class, 'jsonhal', DtoOutput::class, new Get(shortName: 'Bar'), [AbstractNormalizer::GROUPS => ['read', 'write']]];
×
62
        yield ['Bar.DtoOutput.jsonld-read_write', Dummy::class, 'jsonld', DtoOutput::class, new Get(shortName: 'Bar'), [AbstractNormalizer::GROUPS => ['read', 'write']]];
×
63
    }
64

65
    #[\PHPUnit\Framework\Attributes\DataProvider('providerDefinitions')]
66
    public function testCreate(string $expected, string $className, string $format = 'json', ?string $inputOrOutputClass = null, ?Operation $operation = null, array $serializerContext = []): void
67
    {
NEW
68
        $definitionNameFactory = new DefinitionNameFactory();
×
69

70
        static::assertSame($expected, $definitionNameFactory->create($className, $format, $inputOrOutputClass, $operation, $serializerContext));
×
71
    }
72

73
    public function testCreateDifferentPrefixesForClassesWithTheSameShortName(): void
74
    {
NEW
75
        $definitionNameFactory = new DefinitionNameFactory();
×
76

77
        self::assertEquals(
×
78
            'DummyClass.jsonapi',
×
NEW
79
            $definitionNameFactory->create(Fixtures\DefinitionNameFactory\NamespaceA\Module\DummyClass::class, 'jsonapi')
×
80
        );
×
81

82
        self::assertEquals(
×
83
            'Module.DummyClass.jsonapi',
×
NEW
84
            $definitionNameFactory->create(Fixtures\DefinitionNameFactory\NamespaceB\Module\DummyClass::class, 'jsonapi')
×
85
        );
×
86

87
        self::assertEquals(
×
88
            'NamespaceC.Module.DummyClass.jsonapi',
×
NEW
89
            $definitionNameFactory->create(Fixtures\DefinitionNameFactory\NamespaceC\Module\DummyClass::class, 'jsonapi')
×
90
        );
×
91

92
        self::assertEquals(
×
93
            'DummyClass.jsonhal',
×
NEW
94
            $definitionNameFactory->create(Fixtures\DefinitionNameFactory\NamespaceA\Module\DummyClass::class, 'jsonhal')
×
95
        );
×
96
    }
97
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc