From 6548e663ca3ae397cabe33bb7485a5edfeceac61 Mon Sep 17 00:00:00 2001
From: Perreal Guillaume <guillaume.perreal@irstea.fr>
Date: Tue, 20 Aug 2019 14:51:25 +0200
Subject: [PATCH] Ajout d'un Embedded, pour voir.
---
tests/Fixtures/Entity/Address.php | 149 ++++++++++++++++++++
tests/Fixtures/Entity/GeolocalizedTrait.php | 46 ++++++
tests/Fixtures/Entity/Person.php | 4 +-
tests/Fixtures/Entity/Structure.php | 6 +-
4 files changed, 203 insertions(+), 2 deletions(-)
create mode 100644 tests/Fixtures/Entity/Address.php
create mode 100644 tests/Fixtures/Entity/GeolocalizedTrait.php
diff --git a/tests/Fixtures/Entity/Address.php b/tests/Fixtures/Entity/Address.php
new file mode 100644
index 0000000..33c4e13
--- /dev/null
+++ b/tests/Fixtures/Entity/Address.php
@@ -0,0 +1,149 @@
+<?php declare(strict_types=1);
+/**
+ * Copyright (C) 2019 IRSTEA
+ * All rights reserved.
+ *
+ * @copyright 2019 IRSTEA
+ * @author guillaume.perreal
+ */
+
+
+namespace Irstea\NgModelGeneratorBundle\Tests\Fixtures\Entity;
+
+
+use Doctrine\ORM\Mapping as ORM;
+
+/**
+ * Class Address
+ *
+ * @ORM\Embeddable()
+ */
+final class Address
+{
+ /**
+ * @var string
+ */
+ private $street;
+
+ /**
+ * @var string
+ */
+ private $postalCode;
+
+ /**
+ * @var string
+ */
+ private $city;
+
+ /**
+ * @var string
+ */
+ private $country;
+
+ /**
+ * Address constructor.
+ * @param string $street
+ * @param string $postalCode
+ * @param string $city
+ * @param string $country
+ */
+ public function __construct(string $street, string $postalCode, string $city, string $country)
+ {
+ $this->street = $street;
+ $this->postalCode = $postalCode;
+ $this->city = $city;
+ $this->country = $country;
+ }
+
+ /**
+ * Get street.
+ *
+ * @return string
+ */
+ public function getStreet(): string
+ {
+ return $this->street;
+ }
+
+ /**
+ * Set street.
+ *
+ * @param string $street
+ */
+ public function setStreet(string $street): void
+ {
+ $this->street = $street;
+ }
+
+ /**
+ * Get postalCode.
+ *
+ * @return string
+ */
+ public function getPostalCode(): string
+ {
+ return $this->postalCode;
+ }
+
+ /**
+ * Set postalCode.
+ *
+ * @param string $postalCode
+ */
+ public function setPostalCode(string $postalCode): void
+ {
+ $this->postalCode = $postalCode;
+ }
+
+ /**
+ * Get city.
+ *
+ * @return string
+ */
+ public function getCity(): string
+ {
+ return $this->city;
+ }
+
+ /**
+ * Set city.
+ *
+ * @param string $city
+ */
+ public function setCity(string $city): void
+ {
+ $this->city = $city;
+ }
+
+ /**
+ * Get country.
+ *
+ * @return string
+ */
+ public function getCountry(): string
+ {
+ return $this->country;
+ }
+
+ /**
+ * Set country.
+ *
+ * @param string $country
+ */
+ public function setCountry(string $country): void
+ {
+ $this->country = $country;
+ }
+
+ /**
+ * @param Address $other
+ * @return bool
+ */
+ public function isEqualTo(Address $other): bool
+ {
+ return $other->street === $this->street
+ && $other->postalCode === $this->postalCode
+ && $other->city === $this->city
+ && $other->country === $this->city;
+ }
+}
diff --git a/tests/Fixtures/Entity/GeolocalizedTrait.php b/tests/Fixtures/Entity/GeolocalizedTrait.php
new file mode 100644
index 0000000..2284d39
--- /dev/null
+++ b/tests/Fixtures/Entity/GeolocalizedTrait.php
@@ -0,0 +1,46 @@
+<?php declare(strict_types=1);
+/**
+ * Copyright (C) 2019 IRSTEA
+ * All rights reserved.
+ *
+ * @copyright 2019 IRSTEA
+ * @author guillaume.perreal
+ */
+
+
+namespace Irstea\NgModelGeneratorBundle\Tests\Fixtures\Entity;
+
+use Doctrine\ORM\Mapping as ORM;
+
+
+/**
+ * Trait GeolocalizedTrait
+ */
+trait GeolocalizedTrait
+{
+ /**
+ * @var Address|null
+ * @ORM\Embedded(class=Address::class)
+ */
+ private $address;
+
+ /**
+ * Get address.
+ *
+ * @return Address|null
+ */
+ public function getAddress(): ?Address
+ {
+ return $this->address;
+ }
+
+ /**
+ * Get address.
+ *
+ * @return Address|null
+ */
+ public function setAddress(?Address $address): void
+ {
+ $this->address = $address;
+ }
+}
diff --git a/tests/Fixtures/Entity/Person.php b/tests/Fixtures/Entity/Person.php
index 55b876e..d2c0a17 100644
--- a/tests/Fixtures/Entity/Person.php
+++ b/tests/Fixtures/Entity/Person.php
@@ -27,6 +27,7 @@ final class Person
{
use EntityTrait;
use TimestampedTrait;
+ use GeolocalizedTrait;
/**
* @var string
@@ -81,7 +82,7 @@ final class Person
* @param Structure|null $affectation
* @throws \Exception
*/
- public function __construct(string $firstName, string $lastName, string $email = null, string $phoneNumber = null, Structure $affectation = null)
+ public function __construct(string $firstName, string $lastName, string $email = null, string $phoneNumber = null, Structure $affectation = null, Address $address = null)
{
$this->createId();
$this->created();
@@ -94,6 +95,7 @@ final class Person
$this->managedProjects = new ArrayCollection();
$this->participeTo = new ArrayCollection();
$this->affectation = $affectation;
+ $this->address = $address;
}
/**
diff --git a/tests/Fixtures/Entity/Structure.php b/tests/Fixtures/Entity/Structure.php
index c365351..39b9b36 100644
--- a/tests/Fixtures/Entity/Structure.php
+++ b/tests/Fixtures/Entity/Structure.php
@@ -26,6 +26,7 @@ class Structure
{
use EntityTrait;
use TimestampedTrait;
+ use GeolocalizedTrait;
/**
* @ORM\Column()
@@ -49,14 +50,17 @@ class Structure
* Structure constructor.
* @param string $name
* @param Structure|null $parent
+ * @param Address|null $address
+ * @throws \Exception
*/
- public function __construct(string $name, self $parent = null)
+ public function __construct(string $name, self $parent = null, Address $address = null)
{
$this->createId();
$this->created();
$this->name = $name;
$this->parent = $parent;
+ $this->address = $address;
$this->children = New ArrayCollection();
}
--
GitLab