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

api-platform / core / 14955037258

11 May 2025 10:48AM UTC coverage: 7.203% (-1.3%) from 8.457%
14955037258

Pull #7135

github

web-flow
Merge 8fd0f14b5 into 4dd0cdfc4
Pull Request #7135: fix(symfony,laravel): InvalidUriVariableException status code (e400)

1 of 65 new or added lines in 5 files covered. (1.54%)

503 existing lines in 14 files now uncovered.

10846 of 150578 relevant lines covered (7.2%)

3.29 hits per line

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

0.0
/tests/Functional/PullRequests/PullRequest7135Test.php
1
<?php
2

3
declare(strict_types=1);
4

5
namespace ApiPlatform\Tests\Functional\PullRequests;
6

7
use ApiPlatform\Symfony\Bundle\Test\ApiTestCase;
8
use ApiPlatform\Tests\Fixtures\TestBundle\Entity\PullRequest7135\Bar;
9
use ApiPlatform\Tests\Fixtures\TestBundle\Entity\PullRequest7135\Foo;
10
use ApiPlatform\Tests\RecreateSchemaTrait;
11
use ApiPlatform\Tests\SetupClassResourcesTrait;
12
use Doctrine\ORM\EntityManagerInterface;
13
use Doctrine\ORM\Tools\SchemaTool;
14
use Symfony\Component\Uid\Uuid;
15

16
class PullRequest7135Test extends ApiTestCase
17
{
18
    use RecreateSchemaTrait;
19
    use SetupClassResourcesTrait;
20

21
    protected static ?bool $alwaysBootKernel = false;
22

23
    /**
24
     * @return class-string[]
25
     */
26
    public static function getResources(): array
27
    {
NEW
28
        return [Bar::class, Foo::class];
×
29
    }
30

31
    public function testValidPostRequestWithIriWhenIdentifierIsUuid(): void
32
    {
NEW
33
        $container = static::getContainer();
×
NEW
34
        if ('mongodb' === $container->getParameter('kernel.environment')) {
×
NEW
35
            $this->markTestSkipped();
×
36
        }
37

NEW
38
        $this->recreateSchema(self::getResources());
×
NEW
39
        $bar = $this->loadFixtures();
×
40

NEW
41
        $response = self::createClient()->request('POST', '/pull-request-7135/foo/', [
×
NEW
42
            'json' => [
×
NEW
43
                'bar' => 'pull-request-7135/bar/'.$bar->id,
×
NEW
44
            ],
×
NEW
45
        ]);
×
46

NEW
47
        self::assertEquals(201, $response->getStatusCode());
×
48
    }
49

50
    public function testInvalidPostRequestWithIriWhenIdentifierIsUuid(): void
51
    {
NEW
52
        $container = static::getContainer();
×
NEW
53
        if ('mongodb' === $container->getParameter('kernel.environment')) {
×
NEW
54
            $this->markTestSkipped();
×
55
        }
56

NEW
57
        $response = self::createClient()->request('POST', '/pull-request-7135/foo/', [
×
NEW
58
            'json' => [
×
NEW
59
                'bar' => 'pull-request-7135/bar/invalid-uuid',
×
NEW
60
            ],
×
NEW
61
        ]);
×
62

NEW
63
        self::assertEquals(400, $response->getStatusCode());
×
NEW
64
        self::assertJsonContains(['detail' => 'Identifier "id" could not be transformed.']);
×
65
    }
66

67
    public function testInvalidGetRequestWhenIdentifierIsUuid(): void
68
    {
NEW
69
        $container = static::getContainer();
×
NEW
70
        if ('mongodb' === $container->getParameter('kernel.environment')) {
×
NEW
71
            $this->markTestSkipped();
×
72
        }
73

NEW
74
        $response = self::createClient()->request('GET', '/pull-request-7135/bar/invalid-uuid');
×
75

NEW
76
        self::assertEquals(404, $response->getStatusCode());
×
77
    }
78

79
    protected function loadFixtures(): Bar
80
    {
NEW
81
        $container = static::getContainer();
×
NEW
82
        $registry = $container->get('doctrine');
×
NEW
83
        $manager = $registry->getManager();
×
84

NEW
85
        $bar = new Bar(Uuid::fromString('0196b66f-66bd-780b-95fe-0ce987a32357'));
×
NEW
86
        $bar->title = 'Bar one';
×
NEW
87
        $manager->persist($bar);
×
88

NEW
89
        $manager->flush();
×
90

NEW
91
        return $bar;
×
92
    }
93

94
    protected function tearDown(): void
95
    {
NEW
96
        $container = static::getContainer();
×
NEW
97
        $registry = $container->get('doctrine');
×
NEW
98
        $manager = $registry->getManager();
×
NEW
99
        if (!$manager instanceof EntityManagerInterface) {
×
NEW
100
            return;
×
101
        }
102

NEW
103
        $classes = [];
×
NEW
104
        foreach (self::getResources() as $entityClass) {
×
NEW
105
            $classes[] = $manager->getClassMetadata($entityClass);
×
106
        }
107

NEW
108
        $schemaTool = new SchemaTool($manager);
×
NEW
109
        @$schemaTool->dropSchema($classes);
×
NEW
110
        parent::tearDown();
×
111
    }
112
}
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

© 2026 Coveralls, Inc