From 6c52322a3cc5fe4036cc7689d60bd47eca402452 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Wed, 15 Jul 2020 19:20:43 +0400 Subject: Added genre entity Signed-off-by: Valentin Popov --- src/Entities/GenreEntity.php | 108 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 src/Entities/GenreEntity.php (limited to 'src/Entities/GenreEntity.php') diff --git a/src/Entities/GenreEntity.php b/src/Entities/GenreEntity.php new file mode 100644 index 0000000..78a9ac0 --- /dev/null +++ b/src/Entities/GenreEntity.php @@ -0,0 +1,108 @@ + + * @license http://www.apache.org/licenses/LICENSE-2.0 + * @package EPGService\Entities + */ +class GenreEntity { + /** + * @var int + */ + protected int $id; + + /** + * @var string + */ + protected string $lang; + + /** + * @var string + */ + protected string $name; + + /** + * @var string + */ + protected string $version; + + /** + * @param int $id + * @param string $lang + * @param string $name + * @param string $version + */ + protected function __construct(int $id, string $lang, string $name, string $version) { + $this->id = $id; + $this->lang = $lang; + $this->name = $name; + $this->version = $version; + } + + public static function create(array $payload): GenreEntity { + if (!is_int($payload['id'])) { + throw new RuntimeException('blah-blah-blah'); + } + + if (!is_string($payload['lang'])) { + throw new RuntimeException('blah-blah-blah'); + } + + if (!is_string($payload['name'])) { + throw new RuntimeException('blah-blah-blah'); + } + + if (!is_string($payload['version'])) { + throw new RuntimeException('blah-blah-blah'); + } + + return new GenreEntity($payload['id'], $payload['lang'], $payload['name'], $payload['version']); + } + + /** + * @param string $name + * + * @return mixed + */ + public function __get(string $name) { + return $this->$name; + } + + /** + * @param string $name + * @param mixed $value + * + * @throws \RuntimeException + */ + public function __set(string $name, $value) { + throw new RuntimeException('blah-blah-blah'); + } +} -- cgit v1.2.3 From 42008dbe1bb64e901156560d066f47c2208d9d84 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Wed, 15 Jul 2020 22:06:33 +0400 Subject: Marked “final” entities MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Valentin Popov --- src/Entities/CategoryEntity.php | 12 ++++++------ src/Entities/GenreEntity.php | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) (limited to 'src/Entities/GenreEntity.php') diff --git a/src/Entities/CategoryEntity.php b/src/Entities/CategoryEntity.php index ab1f431..af44434 100644 --- a/src/Entities/CategoryEntity.php +++ b/src/Entities/CategoryEntity.php @@ -33,26 +33,26 @@ use function is_string; * @license http://www.apache.org/licenses/LICENSE-2.0 * @package EPGService\Entities */ -class CategoryEntity { +final class CategoryEntity { /** * @var int */ - protected int $id; + private int $id; /** * @var string */ - protected string $lang; + private string $lang; /** * @var string */ - protected string $name; + private string $name; /** * @var string */ - protected string $version; + private string $version; /** * @param int $id @@ -60,7 +60,7 @@ class CategoryEntity { * @param string $name * @param string $version */ - protected function __construct(int $id, string $lang, string $name, string $version) { + private function __construct(int $id, string $lang, string $name, string $version) { $this->id = $id; $this->lang = $lang; $this->name = $name; diff --git a/src/Entities/GenreEntity.php b/src/Entities/GenreEntity.php index 78a9ac0..61e11ba 100644 --- a/src/Entities/GenreEntity.php +++ b/src/Entities/GenreEntity.php @@ -33,26 +33,26 @@ use function is_string; * @license http://www.apache.org/licenses/LICENSE-2.0 * @package EPGService\Entities */ -class GenreEntity { +final class GenreEntity { /** * @var int */ - protected int $id; + private int $id; /** * @var string */ - protected string $lang; + private string $lang; /** * @var string */ - protected string $name; + private string $name; /** * @var string */ - protected string $version; + private string $version; /** * @param int $id @@ -60,7 +60,7 @@ class GenreEntity { * @param string $name * @param string $version */ - protected function __construct(int $id, string $lang, string $name, string $version) { + private function __construct(int $id, string $lang, string $name, string $version) { $this->id = $id; $this->lang = $lang; $this->name = $name; -- cgit v1.2.3 From 7d078315d6f592de968fbaf9959a2dbc2f59ddfe Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sun, 19 Jul 2020 20:14:20 +0400 Subject: Updated genre entity Signed-off-by: Valentin Popov --- src/Entities/GenreEntity.php | 26 +++++++++++--------------- tests/Entities/GenreEntityTest.php | 8 ++++---- 2 files changed, 15 insertions(+), 19 deletions(-) (limited to 'src/Entities/GenreEntity.php') diff --git a/src/Entities/GenreEntity.php b/src/Entities/GenreEntity.php index 61e11ba..ee81041 100644 --- a/src/Entities/GenreEntity.php +++ b/src/Entities/GenreEntity.php @@ -20,11 +20,10 @@ declare(strict_types = 1); namespace EPGService\Entities; use RuntimeException; -use function is_int; use function is_string; /** - * @property-read int $id + * @property-read string $id * @property-read string $lang * @property-read string $name * @property-read string $version @@ -35,9 +34,9 @@ use function is_string; */ final class GenreEntity { /** - * @var int + * @var string */ - private int $id; + private string $id; /** * @var string @@ -55,20 +54,17 @@ final class GenreEntity { private string $version; /** - * @param int $id - * @param string $lang - * @param string $name - * @param string $version + * @param array $payload */ - private function __construct(int $id, string $lang, string $name, string $version) { - $this->id = $id; - $this->lang = $lang; - $this->name = $name; - $this->version = $version; + private function __construct(array $payload) { + $this->id = $payload['id']; + $this->lang = $payload['lang']; + $this->name = $payload['name']; + $this->version = $payload['version']; } public static function create(array $payload): GenreEntity { - if (!is_int($payload['id'])) { + if (!is_string($payload['id'])) { throw new RuntimeException('blah-blah-blah'); } @@ -84,7 +80,7 @@ final class GenreEntity { throw new RuntimeException('blah-blah-blah'); } - return new GenreEntity($payload['id'], $payload['lang'], $payload['name'], $payload['version']); + return new GenreEntity($payload); } /** diff --git a/tests/Entities/GenreEntityTest.php b/tests/Entities/GenreEntityTest.php index 0b1b12c..278fb68 100644 --- a/tests/Entities/GenreEntityTest.php +++ b/tests/Entities/GenreEntityTest.php @@ -32,10 +32,10 @@ final class GenreEntityTest extends TestCase { public function testCreateEntity(): void { $faker = Faker::create(); - $id = $faker->numberBetween(1, 999); - $lang = $faker->languageCode; - $name = $faker->word; - $version = $faker->sha256; + $id = $faker->unique()->sha256; + $lang = $faker->unique()->sha256; + $name = $faker->unique()->sha256; + $version = $faker->unique()->sha256; $entity = GenreEntity::create(compact('id', 'lang', 'name', 'version')); -- cgit v1.2.3