Code Coverage
 
Lines
Branches
Paths
Functions and Methods
Classes and Traits
Total
70.37% covered (warning)
70.37%
19 / 27
35.71% covered (danger)
35.71%
5 / 14
23.08% covered (danger)
23.08%
3 / 13
20.00% covered (danger)
20.00%
2 / 10
CRAP
0.00% covered (danger)
0.00%
0 / 1
DoctrineStoredFile
70.37% covered (warning)
70.37%
19 / 27
35.71% covered (danger)
35.71%
5 / 14
23.08% covered (danger)
23.08%
3 / 13
20.00% covered (danger)
20.00%
2 / 10
77.54
0.00% covered (danger)
0.00%
0 / 1
 __construct
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getId
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getPath
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getFilename
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getMimeType
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getExtension
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getType
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 getCreatedAt
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 toDomain
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 fromDomain
90.00% covered (success)
90.00%
9 / 10
60.00% covered (warning)
60.00%
3 / 5
25.00% covered (danger)
25.00%
1 / 4
0.00% covered (danger)
0.00%
0 / 1
6.80
1<?php
2
3namespace App\Shared\Infrastructure\Persistence\Doctrine\Entity;
4
5use App\Shared\Domain\Model\EntityId;
6use App\Shared\Domain\Model\StoredFile;
7use Doctrine\ORM\Mapping as ORM;
8
9/**
10 * @author Wilhelm Zwertvaegher
11 */
12
13#[ORM\Entity]
14#[ORM\Table(name: "stored_files")]
15class DoctrineStoredFile
16{
17    #[ORM\Id, ORM\Column(type: "string", length: 36)]
18    private string $id;
19
20    #[ORM\Column(type: "string", unique: true)]
21    private string $path;
22
23    #[ORM\Column(type: "string")]
24    private string $filename;
25
26    #[ORM\Column(type: "string", length: 127)]
27    private string $mimeType;
28
29    #[ORM\Column(type: "string")]
30    private string $extension;
31
32    #[ORM\Column(type: "string", length: 40)]
33    private string $type;
34
35    #[ORM\Column(type: 'datetime_immutable')]
36    private \DateTimeImmutable $createdAt;
37
38    public function __construct()
39    {
40    }
41
42    public function getId(): string
43    {
44        return $this->id;
45    }
46
47    public function getPath(): string
48    {
49        return $this->path;
50    }
51
52    public function getFilename(): string
53    {
54        return $this->filename;
55    }
56
57    public function getMimeType(): string
58    {
59        return $this->mimeType;
60    }
61
62    public function getExtension(): string
63    {
64        return $this->extension;
65    }
66
67    public function getType(): string
68    {
69        return $this->type;
70    }
71
72    public function getCreatedAt(): \DateTimeImmutable
73    {
74        return $this->createdAt;
75    }
76
77    public function toDomain(): StoredFile
78    {
79        return new StoredFile(
80            EntityId::fromString($this->id),
81            $this->path,
82            $this->filename,
83            $this->mimeType,
84            $this->extension,
85            $this->type,
86            $this->createdAt
87        );
88    }
89
90    public function fromDomain(StoredFile $storedFile): self
91    {
92        if (isset($this->id) && !$storedFile->getId()->valueEquals($this->id)) {
93            throw new \InvalidArgumentException('Mapping a StoredFile should not change its id');
94        }
95
96        $this->id = $storedFile->getId();
97        $this->path = $storedFile->getPath();
98        $this->filename = $storedFile->getFilename();
99        $this->mimeType = $storedFile->getMimeType();
100        $this->extension = $storedFile->getExtension();
101        $this->type = $storedFile->getType();
102        $this->createdAt = $storedFile->getCreatedAt();
103
104        return $this;
105    }
106}

Branches

Below are the source code lines that represent each code branch as identified by Xdebug. Please note a branch is not necessarily coterminous with a line, a line may contain multiple branches and therefore show up more than once. Please also be aware that some branches may be implicit rather than explicit, e.g. an if statement always has an else as part of its logical flow even if you didn't write one.

DoctrineStoredFile->__construct
40    }
DoctrineStoredFile->fromDomain
90    public function fromDomain(StoredFile $storedFile): self
91    {
92        if (isset($this->id) && !$storedFile->getId()->valueEquals($this->id)) {
92        if (isset($this->id) && !$storedFile->getId()->valueEquals($this->id)) {
92        if (isset($this->id) && !$storedFile->getId()->valueEquals($this->id)) {
93            throw new \InvalidArgumentException('Mapping a StoredFile should not change its id');
96        $this->id = $storedFile->getId();
97        $this->path = $storedFile->getPath();
98        $this->filename = $storedFile->getFilename();
99        $this->mimeType = $storedFile->getMimeType();
100        $this->extension = $storedFile->getExtension();
101        $this->type = $storedFile->getType();
102        $this->createdAt = $storedFile->getCreatedAt();
103
104        return $this;
105    }
DoctrineStoredFile->getCreatedAt
74        return $this->createdAt;
75    }
DoctrineStoredFile->getExtension
64        return $this->extension;
65    }
DoctrineStoredFile->getFilename
54        return $this->filename;
55    }
DoctrineStoredFile->getId
44        return $this->id;
45    }
DoctrineStoredFile->getMimeType
59        return $this->mimeType;
60    }
DoctrineStoredFile->getPath
49        return $this->path;
50    }
DoctrineStoredFile->getType
69        return $this->type;
70    }
DoctrineStoredFile->toDomain
79        return new StoredFile(
80            EntityId::fromString($this->id),
81            $this->path,
82            $this->filename,
83            $this->mimeType,
84            $this->extension,
85            $this->type,
86            $this->createdAt
87        );
88    }
{main}
3namespace App\Shared\Infrastructure\Persistence\Doctrine\Entity;
4
5use App\Shared\Domain\Model\EntityId;
6use App\Shared\Domain\Model\StoredFile;
7use Doctrine\ORM\Mapping as ORM;
8
9/**
10 * @author Wilhelm Zwertvaegher
11 */
12
13#[ORM\Entity]
14#[ORM\Table(name: "stored_files")]
15class DoctrineStoredFile
16{
17    #[ORM\Id, ORM\Column(type: "string", length: 36)]
18    private string $id;
19
20    #[ORM\Column(type: "string", unique: true)]
21    private string $path;
22
23    #[ORM\Column(type: "string")]
24    private string $filename;
25
26    #[ORM\Column(type: "string", length: 127)]
27    private string $mimeType;
28
29    #[ORM\Column(type: "string")]
30    private string $extension;
31
32    #[ORM\Column(type: "string", length: 40)]
33    private string $type;
34
35    #[ORM\Column(type: 'datetime_immutable')]
36    private \DateTimeImmutable $createdAt;
37
38    public function __construct()
39    {
40    }
41
42    public function getId(): string
43    {
44        return $this->id;
45    }
46
47    public function getPath(): string
48    {
49        return $this->path;
50    }
51
52    public function getFilename(): string
53    {
54        return $this->filename;
55    }
56
57    public function getMimeType(): string
58    {
59        return $this->mimeType;
60    }
61
62    public function getExtension(): string
63    {
64        return $this->extension;
65    }
66
67    public function getType(): string
68    {
69        return $this->type;
70    }
71
72    public function getCreatedAt(): \DateTimeImmutable
73    {
74        return $this->createdAt;
75    }
76
77    public function toDomain(): StoredFile
78    {
79        return new StoredFile(
80            EntityId::fromString($this->id),
81            $this->path,
82            $this->filename,
83            $this->mimeType,
84            $this->extension,
85            $this->type,
86            $this->createdAt
87        );
88    }
89
90    public function fromDomain(StoredFile $storedFile): self
91    {
92        if (isset($this->id) && !$storedFile->getId()->valueEquals($this->id)) {
93            throw new \InvalidArgumentException('Mapping a StoredFile should not change its id');
94        }
95
96        $this->id = $storedFile->getId();
97        $this->path = $storedFile->getPath();
98        $this->filename = $storedFile->getFilename();
99        $this->mimeType = $storedFile->getMimeType();
100        $this->extension = $storedFile->getExtension();
101        $this->type = $storedFile->getType();
102        $this->createdAt = $storedFile->getCreatedAt();
103
104        return $this;
105    }