Code Coverage
 
Lines
Branches
Paths
Functions and Methods
Classes and Traits
Total
57.14% covered (warning)
57.14%
4 / 7
50.00% covered (danger)
50.00%
2 / 4
50.00% covered (danger)
50.00%
2 / 4
50.00% covered (danger)
50.00%
2 / 4
CRAP
0.00% covered (danger)
0.00%
0 / 1
DoctrineStoredFileRepository
57.14% covered (warning)
57.14%
4 / 7
50.00% covered (danger)
50.00%
2 / 4
50.00% covered (danger)
50.00%
2 / 4
50.00% covered (danger)
50.00%
2 / 4
6.00
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
 findById
0.00% covered (danger)
0.00%
0 / 2
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
 save
100.00% covered (success)
100.00%
3 / 3
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
 delete
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
1<?php
2
3namespace App\Shared\Infrastructure\Persistence\Doctrine\Repository;
4
5use App\Shared\Domain\Model\EntityId;
6use App\Shared\Domain\Model\StoredFile;
7use App\Shared\Domain\Port\Driven\StoredFileRepository;
8use App\Shared\Infrastructure\Persistence\Doctrine\Entity\DoctrineStoredFile;
9use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
10use Doctrine\ORM\EntityManagerInterface;
11use Doctrine\Persistence\ManagerRegistry;
12
13/**
14 * @author Wilhelm Zwertvaegher
15 * @extends ServiceEntityRepository<DoctrineStoredFile>
16 */
17class DoctrineStoredFileRepository extends ServiceEntityRepository implements StoredFileRepository
18{
19    public function __construct(ManagerRegistry $managerRegistry, private readonly EntityManagerInterface $entityManager)
20    {
21        parent::__construct($managerRegistry, DoctrineStoredFile::class);
22    }
23
24    public function findById(EntityId $id): ?StoredFile
25    {
26        $storedFile = parent::findOneBy(['id' => $id->__toString()]);
27        return $storedFile?->toDomain();
28    }
29
30    public function save(StoredFile $storedFile): void
31    {
32        $doctrineStoredFile = $this->find($storedFile->getId()) ?? new DoctrineStoredFile();
33        $doctrineStoredFile->fromDomain($storedFile);
34        $this->entityManager->persist($doctrineStoredFile);
35    }
36
37    public function delete(StoredFile $storedFile): void
38    {
39        $this->entityManager->remove($storedFile);
40    }
41}