Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
16 / 16
100.00% covered (success)
100.00%
5 / 5
CRAP
100.00% covered (success)
100.00%
1 / 1
Kunde
100.00% covered (success)
100.00%
16 / 16
100.00% covered (success)
100.00%
5 / 5
7
100.00% covered (success)
100.00%
1 / 1
 __construct
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
1
 __toString
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
2
 getArt
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
 getLieferadressen
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
2
 getKundeLieferadressen
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5namespace Satag\AmicronEntityBundle\Entity;
6
7use Doctrine\Common\Collections\ArrayCollection;
8use Doctrine\Common\Collections\Collection;
9use Doctrine\ORM\Mapping as ORM;
10use Satag\AmicronEntityBundle\Traits\DisableAutomappingBlobWorkaround;
11
12/**
13 * @see \Satag\AmicronEntityBundle\Tests\Entity\KundeTest
14 */
15#[ORM\Entity]
16#[ORM\HasLifecycleCallbacks]
17final class Kunde extends Adresse implements \Stringable
18{
19    use DisableAutomappingBlobWorkaround;
20
21    /**
22     * @var Collection<int, KundeLieferadresse>
23     */
24    #[ORM\OneToMany(mappedBy: 'kunde', targetEntity: KundeLieferadresse::class, cascade: ['persist'], fetch: 'LAZY', orphanRemoval: true)]
25    private Collection $kundeLieferadressen;
26
27    public function __construct(
28        bool $interessent = false
29    ) {
30        $this->kundeLieferadressen = new ArrayCollection();
31        $this->setInteressent($interessent);
32        $this->setArt('K');
33        parent::__construct();
34    }
35
36    #[\Override]
37    public function __toString(): string
38    {
39        return \sprintf(
40            '\\\\%s:%s (%s)',
41            $this->isInteressent ? 'Interessent' : 'Kunde',
42            $this->lfdnr,
43            $this->nr
44        );
45    }
46
47    public function getArt(): string
48    {
49        return 'K';
50    }
51
52    /**
53     * @return Collection<int, Kunde>
54     */
55    public function getLieferadressen(): Collection
56    {
57        $lieferadressen = new ArrayCollection();
58        foreach ($this->getKundeLieferadressen() as $kundeLieferadresse) {
59            $lieferadressen->add($kundeLieferadresse->getLieferadresse());
60        }
61
62        return $lieferadressen;
63    }
64
65    /**
66     * @return Collection<int, KundeLieferadresse>
67     */
68    private function getKundeLieferadressen(): Collection
69    {
70        return $this->kundeLieferadressen;
71    }
72}