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

api-platform / core / 17158226138

22 Aug 2025 02:38PM UTC coverage: 22.203% (-0.006%) from 22.209%
17158226138

Pull #7303

github

web-flow
Merge d35038aad into 9e382e01b
Pull Request #7303: fix(test): replace `Collection|iterable` with `Collection` and add appropriate PHPDoc tags

0 of 20 new or added lines in 8 files covered. (0.0%)

7 existing lines in 7 files now uncovered.

11699 of 52692 relevant lines covered (22.2%)

24.2 hits per line

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

0.0
/src/Doctrine/Orm/Tests/Fixtures/Entity/RelatedDummy.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\Doctrine\Orm\Tests\Fixtures\Entity;
15

16
use ApiPlatform\Doctrine\Orm\Filter\DateFilter;
17
use ApiPlatform\Doctrine\Orm\Filter\ExistsFilter;
18
use ApiPlatform\Doctrine\Orm\Filter\SearchFilter;
19
use ApiPlatform\Metadata\ApiFilter;
20
use ApiPlatform\Metadata\ApiProperty;
21
use ApiPlatform\Metadata\ApiResource;
22
use ApiPlatform\Metadata\Get;
23
use ApiPlatform\Metadata\GetCollection;
24
use ApiPlatform\Metadata\GraphQl\Mutation;
25
use ApiPlatform\Metadata\GraphQl\Query;
26
use ApiPlatform\Metadata\Link;
27
use Doctrine\Common\Collections\ArrayCollection;
28
use Doctrine\Common\Collections\Collection;
29
use Doctrine\ORM\Mapping as ORM;
30
use Symfony\Component\Serializer\Annotation\Groups;
31
use Symfony\Component\Validator\Constraints as Assert;
32

33
/**
34
 * Related Dummy.
35
 *
36
 * @author Kévin Dunglas <dunglas@gmail.com>
37
 */
38
#[ApiResource(
39
    graphQlOperations: [
×
40
        new Query(name: 'item_query'),
×
41
        new Mutation(name: 'update', normalizationContext: ['groups' => ['chicago', 'fakemanytomany']], denormalizationContext: ['groups' => ['friends']]),
×
42
    ],
×
43
    types: ['https://schema.org/Product'],
×
44
    normalizationContext: ['groups' => ['friends']],
×
45
    filters: ['related_dummy.friends', 'related_dummy.complex_sub_query']
×
46
)]
×
47
#[ApiResource(uriTemplate: '/dummies/{id}/related_dummies{._format}', uriVariables: ['id' => new Link(fromClass: Dummy::class, identifiers: ['id'], fromProperty: 'relatedDummies')], status: 200, types: ['https://schema.org/Product'], filters: ['related_dummy.friends', 'related_dummy.complex_sub_query'], normalizationContext: ['groups' => ['friends']], operations: [new GetCollection()])]
48
#[ApiResource(uriTemplate: '/dummies/{id}/related_dummies/{relatedDummies}{._format}', uriVariables: ['id' => new Link(fromClass: Dummy::class, identifiers: ['id'], fromProperty: 'relatedDummies'), 'relatedDummies' => new Link(fromClass: self::class, identifiers: ['id'])], status: 200, types: ['https://schema.org/Product'], filters: ['related_dummy.friends', 'related_dummy.complex_sub_query'], normalizationContext: ['groups' => ['friends']], operations: [new Get()])]
49
#[ApiResource(uriTemplate: '/related_dummies/{id}/id{._format}', uriVariables: ['id' => new Link(fromClass: self::class, identifiers: ['id'])], status: 200, types: ['https://schema.org/Product'], filters: ['related_dummy.friends', 'related_dummy.complex_sub_query'], normalizationContext: ['groups' => ['friends']], operations: [new Get()])]
50
#[ApiResource(uriTemplate: '/related_owned_dummies/{id}/owning_dummy/related_dummies{._format}', uriVariables: ['id' => new Link(fromClass: RelatedOwnedDummy::class, identifiers: ['id'], fromProperty: 'owningDummy'), 'owningDummy' => new Link(fromClass: Dummy::class, identifiers: [], expandedValue: 'owning_dummy', fromProperty: 'relatedDummies')], status: 200, types: ['https://schema.org/Product'], filters: ['related_dummy.friends', 'related_dummy.complex_sub_query'], normalizationContext: ['groups' => ['friends']], operations: [new GetCollection()])]
51
#[ApiResource(uriTemplate: '/related_owned_dummies/{id}/owning_dummy/related_dummies/{relatedDummies}{._format}', uriVariables: ['id' => new Link(fromClass: RelatedOwnedDummy::class, identifiers: ['id'], fromProperty: 'owningDummy'), 'owningDummy' => new Link(fromClass: Dummy::class, identifiers: [], expandedValue: 'owning_dummy', fromProperty: 'relatedDummies'), 'relatedDummies' => new Link(fromClass: self::class, identifiers: ['id'])], status: 200, types: ['https://schema.org/Product'], filters: ['related_dummy.friends', 'related_dummy.complex_sub_query'], normalizationContext: ['groups' => ['friends']], operations: [new Get()])]
52
#[ApiResource(uriTemplate: '/related_owning_dummies/{id}/owned_dummy/related_dummies{._format}', uriVariables: ['id' => new Link(fromClass: RelatedOwningDummy::class, identifiers: ['id'], fromProperty: 'ownedDummy'), 'ownedDummy' => new Link(fromClass: Dummy::class, identifiers: [], expandedValue: 'owned_dummy', fromProperty: 'relatedDummies')], status: 200, types: ['https://schema.org/Product'], filters: ['related_dummy.friends', 'related_dummy.complex_sub_query'], normalizationContext: ['groups' => ['friends']], operations: [new GetCollection()])]
53
#[ApiResource(uriTemplate: '/related_owning_dummies/{id}/owned_dummy/related_dummies/{relatedDummies}{._format}', uriVariables: ['id' => new Link(fromClass: RelatedOwningDummy::class, identifiers: ['id'], fromProperty: 'ownedDummy'), 'ownedDummy' => new Link(fromClass: Dummy::class, identifiers: [], expandedValue: 'owned_dummy', fromProperty: 'relatedDummies'), 'relatedDummies' => new Link(fromClass: self::class, identifiers: ['id'])], status: 200, types: ['https://schema.org/Product'], filters: ['related_dummy.friends', 'related_dummy.complex_sub_query'], normalizationContext: ['groups' => ['friends']], operations: [new Get()])]
54
#[ApiFilter(filterClass: SearchFilter::class, properties: ['id'])]
55
#[ORM\Entity]
56
class RelatedDummy extends ParentDummy implements \Stringable
57
{
58
    #[ApiProperty(writable: false)]
59
    #[ORM\Column(type: 'integer')]
60
    #[ORM\Id]
61
    #[ORM\GeneratedValue(strategy: 'AUTO')]
62
    #[Groups(['chicago', 'friends'])]
63
    private $id;
64

65
    /**
66
     * @var string|null A name
67
     */
68
    #[ApiProperty(iris: ['RelatedDummy.name'])]
69
    #[ORM\Column(nullable: true)]
70
    #[Groups(['friends'])]
71
    public $name;
72

73
    #[ApiProperty(deprecationReason: 'This property is deprecated for upgrade test')]
74
    #[ORM\Column]
75
    #[Groups(['barcelona', 'chicago', 'friends'])]
76
    #[ApiFilter(filterClass: SearchFilter::class)]
77
    #[ApiFilter(filterClass: ExistsFilter::class)]
78
    protected $symfony = 'symfony';
79

80
    /**
81
     * @var \DateTime|null A dummy date
82
     */
83
    #[ORM\Column(type: 'datetime', nullable: true)]
84
    #[Assert\DateTime]
85
    #[Groups(['friends'])]
86
    #[ApiFilter(filterClass: DateFilter::class)]
87
    public $dummyDate;
88

89
    #[ORM\ManyToOne(targetEntity: ThirdLevel::class, cascade: ['persist'], inversedBy: 'relatedDummies')]
90
    #[Groups(['barcelona', 'chicago', 'friends'])]
91
    public ?ThirdLevel $thirdLevel = null;
92

93
    /**
94
     * @var Collection<int, RelatedToDummyFriend>|iterable
95
     */
96
    #[ORM\OneToMany(targetEntity: RelatedToDummyFriend::class, cascade: ['persist'], mappedBy: 'relatedDummy')]
97
    #[Groups(['fakemanytomany', 'friends'])]
98
    public Collection|iterable $relatedToDummyFriend;
99

100
    #[ORM\Column(enumType: DummyBackedEnum::class, nullable: true)]
101
    public DummyBackedEnum $dummyBackedEnum;
102

103
    /**
104
     * @var bool|null A dummy bool
105
     */
106
    #[ORM\Column(type: 'boolean', nullable: true)]
107
    #[Groups(['friends'])]
108
    public ?bool $dummyBoolean = null;
109

110
    #[ORM\Embedded(class: 'EmbeddableDummy')]
111
    #[Groups(['friends'])]
112
    public ?EmbeddableDummy $embeddedDummy = null;
113

114
    public function __construct()
115
    {
116
        $this->relatedToDummyFriend = new ArrayCollection();
×
117
        $this->embeddedDummy = new EmbeddableDummy();
×
118
    }
119

120
    public function getId()
121
    {
122
        return $this->id;
×
123
    }
124

125
    public function setId($id): void
126
    {
127
        $this->id = $id;
×
128
    }
129

130
    public function setName($name): void
131
    {
132
        $this->name = $name;
×
133
    }
134

135
    public function getName()
136
    {
137
        return $this->name;
×
138
    }
139

140
    public function getSymfony()
141
    {
142
        return $this->symfony;
×
143
    }
144

145
    public function setSymfony($symfony): void
146
    {
147
        $this->symfony = $symfony;
×
148
    }
149

150
    public function setDummyDate(\DateTime $dummyDate): void
151
    {
152
        $this->dummyDate = $dummyDate;
×
153
    }
154

155
    public function getDummyDate()
156
    {
157
        return $this->dummyDate;
×
158
    }
159

160
    public function isDummyBoolean(): ?bool
161
    {
162
        return $this->dummyBoolean;
×
163
    }
164

165
    /**
166
     * @param bool $dummyBoolean
167
     */
168
    public function setDummyBoolean($dummyBoolean): void
169
    {
170
        $this->dummyBoolean = $dummyBoolean;
×
171
    }
172

173
    public function getThirdLevel(): ?ThirdLevel
174
    {
175
        return $this->thirdLevel;
×
176
    }
177

178
    public function setThirdLevel(?ThirdLevel $thirdLevel = null): void
179
    {
180
        $this->thirdLevel = $thirdLevel;
×
181
    }
182

183
    /**
184
     * Get relatedToDummyFriend.
185
     *
186
     * @return Collection<int, RelatedToDummyFriend>|iterable
187
     */
188
    public function getRelatedToDummyFriend(): Collection|iterable
189
    {
190
        return $this->relatedToDummyFriend;
×
191
    }
192

193
    /**
194
     * Set relatedToDummyFriend.
195
     *
196
     * @param RelatedToDummyFriend $relatedToDummyFriend the value to set
197
     */
198
    public function addRelatedToDummyFriend(RelatedToDummyFriend $relatedToDummyFriend): void
199
    {
NEW
200
        if (!$this->relatedToDummyFriend instanceof Collection) {
×
NEW
201
            return;
×
202
        }
203

UNCOV
204
        $this->relatedToDummyFriend->add($relatedToDummyFriend);
×
205
    }
206

207
    public function getEmbeddedDummy(): EmbeddableDummy
208
    {
209
        return $this->embeddedDummy;
×
210
    }
211

212
    public function setEmbeddedDummy(EmbeddableDummy $embeddedDummy): void
213
    {
214
        $this->embeddedDummy = $embeddedDummy;
×
215
    }
216

217
    public function __toString(): string
218
    {
219
        return (string) $this->getId();
×
220
    }
221
}
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