Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 52
0.00% covered (danger)
0.00%
0 / 38
CRAP
0.00% covered (danger)
0.00%
0 / 1
SolvResult
0.00% covered (danger)
0.00%
0 / 52
0.00% covered (danger)
0.00%
0 / 38
1640
0.00% covered (danger)
0.00%
0 / 1
 __toString
0.00% covered (danger)
0.00%
0 / 11
0.00% covered (danger)
0.00%
0 / 1
2
 getId
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setId
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getPerson
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setPerson
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getEvent
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setEvent
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getClass
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setClass
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getRank
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setRank
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getName
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setName
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getBirthYear
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setBirthYear
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getDomicile
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setDomicile
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getClub
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setClub
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getResult
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setResult
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getSplits
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setSplits
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getLastControlCode
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setLastControlCode
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getFinishSplit
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setFinishSplit
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getClassDistance
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setClassDistance
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getClassElevation
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setClassElevation
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getClassControlCount
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setClassControlCount
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getClassCompetitorCount
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 setClassCompetitorCount
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getFieldValue
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
6
 setFieldValue
0.00% covered (danger)
0.00%
0 / 3
0.00% covered (danger)
0.00%
0 / 1
6
 testOnlyGetField
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
1<?php
2
3namespace Olz\Entity;
4
5use Doctrine\ORM\Mapping as ORM;
6use Olz\Entity\Common\TestableInterface;
7use Olz\Repository\SolvResultRepository;
8
9#[ORM\Table(name: 'solv_results')]
10#[ORM\Index(name: 'person_name_index', columns: ['person', 'name'])]
11#[ORM\Index(name: 'event_index', columns: ['event'])]
12#[ORM\Entity(repositoryClass: SolvResultRepository::class)]
13class SolvResult implements TestableInterface {
14    #[ORM\Id]
15    #[ORM\Column(type: 'integer', nullable: false)]
16    #[ORM\GeneratedValue]
17    private int $id;
18
19    #[ORM\Column(type: 'integer', nullable: false)]
20    private int $person;
21
22    #[ORM\Column(type: 'integer', nullable: false)]
23    private int $event;
24
25    #[ORM\Column(type: 'string', nullable: false, length: 15)]
26    private string $class;
27
28    #[ORM\Column(type: 'integer', nullable: false)]
29    private int $rank;
30
31    #[ORM\Column(type: 'string', nullable: false, length: 31)]
32    private string $name;
33
34    #[ORM\Column(type: 'string', nullable: false, length: 3)]
35    private string $birth_year;
36
37    #[ORM\Column(type: 'string', nullable: false, length: 31)]
38    private string $domicile;
39
40    #[ORM\Column(type: 'string', nullable: false, length: 31)]
41    private string $club;
42
43    #[ORM\Column(type: 'integer', nullable: false)]
44    private int $result;
45
46    #[ORM\Column(type: 'text', nullable: false)]
47    private string $splits;
48
49    #[ORM\Column(type: 'integer', nullable: false)]
50    private int $last_control_code;
51
52    #[ORM\Column(type: 'integer', nullable: false)]
53    private int $finish_split;
54
55    #[ORM\Column(type: 'integer', nullable: false)]
56    private int $class_distance;
57
58    #[ORM\Column(type: 'integer', nullable: false)]
59    private int $class_elevation;
60
61    #[ORM\Column(type: 'integer', nullable: false)]
62    private int $class_control_count;
63
64    #[ORM\Column(type: 'integer', nullable: false)]
65    private int $class_competitor_count;
66
67    public function __toString(): string {
68        return <<<ZZZZZZZZZZ
69            SolvResult(
70                id:{$this->id},
71                event:{$this->event},
72                class:{$this->class},
73                person:{$this->person},
74                name:{$this->name},
75                birth_year:{$this->birth_year},
76                domicile:{$this->domicile},
77                club:{$this->club},
78            )
79            ZZZZZZZZZZ;
80    }
81
82    /** @var array<string, true> */
83    private array $valid_field_names = [
84        'id' => true,
85        'person' => true,
86        'event' => true,
87        'class' => true,
88        'rank' => true,
89        'name' => true,
90        'birth_year' => true,
91        'domicile' => true,
92        'club' => true,
93        'result' => true,
94        'splits' => true,
95        'finish_split' => true,
96        'class_distance' => true,
97        'class_elevation' => true,
98        'class_control_count' => true,
99        'class_competitor_count' => true,
100    ];
101    // PRIMARY KEY (`id`),
102    // UNIQUE KEY `person` (`person`,`event`,`class`,`name`,`birth_year`,`domicile`,`club`)
103
104    public function getId(): ?int {
105        return $this->id ?? null;
106    }
107
108    public function setId(int $new_value): void {
109        $this->id = $new_value;
110    }
111
112    public function getPerson(): int {
113        return $this->person;
114    }
115
116    public function setPerson(int $new_value): void {
117        $this->person = $new_value;
118    }
119
120    public function getEvent(): int {
121        return $this->event;
122    }
123
124    public function setEvent(int $new_value): void {
125        $this->event = $new_value;
126    }
127
128    public function getClass(): string {
129        return $this->class;
130    }
131
132    public function setClass(string $new_value): void {
133        $this->class = $new_value;
134    }
135
136    public function getRank(): int {
137        return $this->rank;
138    }
139
140    public function setRank(int $new_value): void {
141        $this->rank = $new_value;
142    }
143
144    public function getName(): string {
145        return $this->name;
146    }
147
148    public function setName(string $new_value): void {
149        $this->name = $new_value;
150    }
151
152    public function getBirthYear(): string {
153        return $this->birth_year;
154    }
155
156    public function setBirthYear(string $new_value): void {
157        $this->birth_year = $new_value;
158    }
159
160    public function getDomicile(): string {
161        return $this->domicile;
162    }
163
164    public function setDomicile(string $new_value): void {
165        $this->domicile = $new_value;
166    }
167
168    public function getClub(): string {
169        return $this->club;
170    }
171
172    public function setClub(string $new_value): void {
173        $this->club = $new_value;
174    }
175
176    public function getResult(): int {
177        return $this->result;
178    }
179
180    public function setResult(int $new_value): void {
181        $this->result = $new_value;
182    }
183
184    public function getSplits(): string {
185        return $this->splits;
186    }
187
188    public function setSplits(string $new_value): void {
189        $this->splits = $new_value;
190    }
191
192    public function getLastControlCode(): int {
193        return $this->last_control_code;
194    }
195
196    public function setLastControlCode(int $new_value): void {
197        $this->last_control_code = $new_value;
198    }
199
200    public function getFinishSplit(): int {
201        return $this->finish_split;
202    }
203
204    public function setFinishSplit(int $new_value): void {
205        $this->finish_split = $new_value;
206    }
207
208    public function getClassDistance(): int {
209        return $this->class_distance;
210    }
211
212    public function setClassDistance(int $new_value): void {
213        $this->class_distance = $new_value;
214    }
215
216    public function getClassElevation(): int {
217        return $this->class_elevation;
218    }
219
220    public function setClassElevation(int $new_value): void {
221        $this->class_elevation = $new_value;
222    }
223
224    public function getClassControlCount(): int {
225        return $this->class_control_count;
226    }
227
228    public function setClassControlCount(int $new_value): void {
229        $this->class_control_count = $new_value;
230    }
231
232    public function getClassCompetitorCount(): int {
233        return $this->class_competitor_count;
234    }
235
236    public function setClassCompetitorCount(int $new_value): void {
237        $this->class_competitor_count = $new_value;
238    }
239
240    public function getFieldValue(string $field_name): mixed {
241        if (!isset($this->valid_field_names[$field_name])) {
242            throw new \Exception("getFieldValue: Invalid field name: {$field_name}", 1);
243        }
244        return $this->{$field_name};
245    }
246
247    public function setFieldValue(string $field_name, mixed $new_value): void {
248        if (!isset($this->valid_field_names[$field_name])) {
249            throw new \Exception("setFieldValue: Invalid field name: {$field_name}", 1);
250        }
251        $this->{$field_name} = $new_value;
252    }
253
254    // ---
255
256    public function testOnlyGetField(string $field_name): mixed {
257        return $this->{$field_name};
258    }
259}