From 82584345f6340d83008bed2eb35b3600da925135 Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Fri, 17 Jul 2020 13:57:33 +0400 Subject: Added channel repository Signed-off-by: Valentin Popov --- tests/Repositories/ChannelRepositoryTest.php | 51 ++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 tests/Repositories/ChannelRepositoryTest.php (limited to 'tests/Repositories/ChannelRepositoryTest.php') diff --git a/tests/Repositories/ChannelRepositoryTest.php b/tests/Repositories/ChannelRepositoryTest.php new file mode 100644 index 0000000..2843a8b --- /dev/null +++ b/tests/Repositories/ChannelRepositoryTest.php @@ -0,0 +1,51 @@ + + * @license http://www.apache.org/licenses/LICENSE-2.0 + * @package Tests\Repositories + */ +final class ChannelRepositoryTest extends TestCase { + public function testGetAction(): void { + $env = GetServiceEnvironment::get(); + + foreach (ChannelRepository::create($env)->get() as $channel) { + /** @var \EPGService\Entities\ChannelEntity $channel */ + + self::assertIsString($channel->base_id); + self::assertIsString($channel->base_name); + self::assertIsString($channel->epg_id); + self::assertIsString($channel->geo_data); + self::assertIsString($channel->href); + self::assertIsString($channel->icon); + self::assertIsString($channel->id); + self::assertIsString($channel->lang); + self::assertIsString($channel->name); + self::assertIsString($channel->update_at); + self::assertIsString($channel->week); + } + } +} -- cgit v1.2.3 From a52e2e198708cf3e24eda73cbbc5906593cc730a Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sat, 18 Jul 2020 15:49:06 +0400 Subject: Added DateTime of channel entity Signed-off-by: Valentin Popov --- src/Entities/ChannelEntity.php | 29 ++++++++++++++-------------- src/Repositories/ChannelRepository.php | 6 +++++- tests/Repositories/ChannelRepositoryTest.php | 3 ++- 3 files changed, 22 insertions(+), 16 deletions(-) (limited to 'tests/Repositories/ChannelRepositoryTest.php') diff --git a/src/Entities/ChannelEntity.php b/src/Entities/ChannelEntity.php index 0d8d3fc..4881722 100644 --- a/src/Entities/ChannelEntity.php +++ b/src/Entities/ChannelEntity.php @@ -19,21 +19,22 @@ declare(strict_types = 1); namespace EPGService\Entities; +use DateTime; use RuntimeException; use function is_string; /** - * @property-read string $base_id - * @property-read string $base_name - * @property-read string $epg_id - * @property-read string $geo_data - * @property-read string $href - * @property-read string $icon - * @property-read string $id - * @property-read string $lang - * @property-read string $name - * @property-read string $update_at - * @property-read string $week + * @property-read string $base_id + * @property-read string $base_name + * @property-read string $epg_id + * @property-read string $geo_data + * @property-read string $href + * @property-read string $icon + * @property-read string $id + * @property-read string $lang + * @property-read string $name + * @property-read \DateTime $update_at + * @property-read string $week * * @copyright Copyright © 2020 “Valentin Popov” * @license http://www.apache.org/licenses/LICENSE-2.0 @@ -86,9 +87,9 @@ final class ChannelEntity { private string $name; /** - * @var string + * @var \DateTime */ - private string $update_at; + private DateTime $update_at; /** * @var string @@ -156,7 +157,7 @@ final class ChannelEntity { throw new RuntimeException('blah-blah-blah'); } - if (!is_string($payload['update_at'])) { + if (!$payload['update_at'] instanceof DateTime) { throw new RuntimeException('blah-blah-blah'); } diff --git a/src/Repositories/ChannelRepository.php b/src/Repositories/ChannelRepository.php index 44eac36..772e4f9 100644 --- a/src/Repositories/ChannelRepository.php +++ b/src/Repositories/ChannelRepository.php @@ -19,6 +19,7 @@ declare(strict_types = 1); namespace EPGService\Repositories; +use DateTime; use EPGService\Entities\ChannelEntity; use EPGService\Environments\ServiceEnvironment; use EPGService\Parsers\StringParser; @@ -66,6 +67,7 @@ final class ChannelRepository implements BaseRepository { * * @throws \GuzzleHttp\Exception\GuzzleException * @throws \RuntimeException + * @throws \Exception */ public function get(): array { $response = $this->client->get(self::METHOD); @@ -84,6 +86,8 @@ final class ChannelRepository implements BaseRepository { continue; } + $update = StringParser::get($element->update); + $result[] = ChannelEntity::create([ 'base_id' => StringParser::get($element->{'base-channel'}), 'base_name' => StringParser::get($element->{'base-channel'}['id']), @@ -94,7 +98,7 @@ final class ChannelRepository implements BaseRepository { 'id' => StringParser::get($element['id']), 'lang' => StringParser::get($element->{'display-name'}['lang']), 'name' => StringParser::get($element->{'base-channel'}), - 'update_at' => StringParser::get($element->update), + 'update_at' => new DateTime($update), 'week' => StringParser::get($element->week), ]); } diff --git a/tests/Repositories/ChannelRepositoryTest.php b/tests/Repositories/ChannelRepositoryTest.php index 2843a8b..eea6511 100644 --- a/tests/Repositories/ChannelRepositoryTest.php +++ b/tests/Repositories/ChannelRepositoryTest.php @@ -19,6 +19,7 @@ declare(strict_types = 1); namespace Tests\Repositories; +use DateTime; use EPGService\Repositories\ChannelRepository; use PHPUnit\Framework\TestCase; use Tests\Utilities\GetServiceEnvironment; @@ -44,8 +45,8 @@ final class ChannelRepositoryTest extends TestCase { self::assertIsString($channel->id); self::assertIsString($channel->lang); self::assertIsString($channel->name); - self::assertIsString($channel->update_at); self::assertIsString($channel->week); + self::isInstanceOf(DateTime::class, $channel->update_at); } } } -- cgit v1.2.3 From c7bd59904658c3f3a451dd12f36dcabae161c04d Mon Sep 17 00:00:00 2001 From: Valentin Popov Date: Sat, 18 Jul 2020 16:08:00 +0400 Subject: Updated PhpDoc Signed-off-by: Valentin Popov --- tests/Repositories/CategoryRepositoryTest.php | 2 ++ tests/Repositories/ChannelRepositoryTest.php | 5 +++++ tests/Repositories/GenreRepositoryTest.php | 2 ++ 3 files changed, 9 insertions(+) (limited to 'tests/Repositories/ChannelRepositoryTest.php') diff --git a/tests/Repositories/CategoryRepositoryTest.php b/tests/Repositories/CategoryRepositoryTest.php index f78f5b4..25dbdd8 100644 --- a/tests/Repositories/CategoryRepositoryTest.php +++ b/tests/Repositories/CategoryRepositoryTest.php @@ -31,6 +31,8 @@ use Tests\Utilities\GetServiceEnvironment; final class CategoryRepositoryTest extends TestCase { /** * @throws \GuzzleHttp\Exception\GuzzleException + * @throws \RuntimeException + * @throws \Exception */ public function testGetAction(): void { $env = GetServiceEnvironment::get(); diff --git a/tests/Repositories/ChannelRepositoryTest.php b/tests/Repositories/ChannelRepositoryTest.php index eea6511..b9d9116 100644 --- a/tests/Repositories/ChannelRepositoryTest.php +++ b/tests/Repositories/ChannelRepositoryTest.php @@ -30,6 +30,11 @@ use Tests\Utilities\GetServiceEnvironment; * @package Tests\Repositories */ final class ChannelRepositoryTest extends TestCase { + /** + * @throws \GuzzleHttp\Exception\GuzzleException + * @throws \RuntimeException + * @throws \Exception + */ public function testGetAction(): void { $env = GetServiceEnvironment::get(); diff --git a/tests/Repositories/GenreRepositoryTest.php b/tests/Repositories/GenreRepositoryTest.php index 1598bbd..8afe351 100644 --- a/tests/Repositories/GenreRepositoryTest.php +++ b/tests/Repositories/GenreRepositoryTest.php @@ -31,6 +31,8 @@ use Tests\Utilities\GetServiceEnvironment; final class GenreRepositoryTest extends TestCase { /** * @throws \GuzzleHttp\Exception\GuzzleException + * @throws \RuntimeException + * @throws \Exception */ public function testGetAction(): void { $env = GetServiceEnvironment::get(); -- cgit v1.2.3