aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/Entities/CategoryEntityTest.php47
-rw-r--r--tests/Entities/ChannelEntityTest.php73
-rw-r--r--tests/Entities/CountryEntityTest.php49
-rw-r--r--tests/Entities/GenreEntityTest.php47
-rw-r--r--tests/Entities/Program/CreditEntityTest.php43
-rw-r--r--tests/Entities/ProgramEntityTest.php83
-rw-r--r--tests/Environments/ServiceEnvironmentTest.php37
-rw-r--r--tests/Parsers/IntegerParserTest.php36
-rw-r--r--tests/Parsers/StringParserTest.php35
-rw-r--r--tests/Repositories/CategoryRepositoryTest.php49
-rw-r--r--tests/Repositories/ChannelRepositoryTest.php57
-rw-r--r--tests/Repositories/CountryRepositoryTest.php44
-rw-r--r--tests/Repositories/GenreRepositoryTest.php49
-rw-r--r--tests/Repositories/ProgramRepositoryTest.php53
-rw-r--r--tests/Utilities/GetCreditEntityUtility.php39
-rw-r--r--tests/Utilities/GetKeyUtility.php39
-rw-r--r--tests/Utilities/GetServiceEnvironment.php38
17 files changed, 818 insertions, 0 deletions
diff --git a/tests/Entities/CategoryEntityTest.php b/tests/Entities/CategoryEntityTest.php
new file mode 100644
index 0000000..35363fa
--- /dev/null
+++ b/tests/Entities/CategoryEntityTest.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Copyright 2020 “EPGService”
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+declare(strict_types = 1);
+
+namespace Tests\Entities;
+
+use EPGService\Entities\CategoryEntity;
+use Faker\Factory as Faker;
+use PHPUnit\Framework\TestCase;
+
+/**
+ * @copyright Copyright © 2020 “Valentin Popov” <info@valentineus.link>
+ * @license http://www.apache.org/licenses/LICENSE-2.0
+ * @package Tests\Entities
+ */
+final class CategoryEntityTest extends TestCase {
+ public function testCreateEntity(): void {
+ $faker = Faker::create();
+
+ $id = $faker->unique()->sha256;
+ $lang = $faker->unique()->sha256;
+ $name = $faker->unique()->sha256;
+ $version = $faker->unique()->sha256;
+
+ $entity = CategoryEntity::create(compact('id', 'lang', 'name', 'version'));
+
+ self::assertEquals($id, $entity->id);
+ self::assertEquals($lang, $entity->lang);
+ self::assertEquals($name, $entity->name);
+ self::assertEquals($version, $entity->version);
+ }
+}
diff --git a/tests/Entities/ChannelEntityTest.php b/tests/Entities/ChannelEntityTest.php
new file mode 100644
index 0000000..e3c2733
--- /dev/null
+++ b/tests/Entities/ChannelEntityTest.php
@@ -0,0 +1,73 @@
+<?php
+/**
+ * Copyright 2020 “EPGService”
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+declare(strict_types = 1);
+
+namespace Tests\Entities;
+
+use EPGService\Entities\ChannelEntity;
+use Faker\Factory;
+use PHPUnit\Framework\TestCase;
+
+/**
+ * @copyright Copyright © 2020 “Valentin Popov” <info@valentineus.link>
+ * @license http://www.apache.org/licenses/LICENSE-2.0
+ * @package Tests\Entities
+ */
+final class ChannelEntityTest extends TestCase {
+ public function testCreateEntity(): void {
+ $faker = Factory::create();
+
+ $base_id = $faker->unique()->sha256;
+ $base_name = $faker->unique()->sha256;
+ $epg_id = $faker->unique()->sha256;
+ $geo_data = $faker->unique()->sha256;
+ $href = $faker->unique()->sha256;
+ $icon = $faker->unique()->sha256;
+ $id = $faker->unique()->sha256;
+ $lang = $faker->unique()->sha256;
+ $name = $faker->unique()->sha256;
+ $update_at = $faker->unique()->sha256;
+ $week = $faker->unique()->sha256;
+
+ $entity = ChannelEntity::create(compact(
+ 'base_id',
+ 'base_name',
+ 'epg_id',
+ 'geo_data',
+ 'href',
+ 'icon',
+ 'id',
+ 'lang',
+ 'name',
+ 'update_at',
+ 'week',
+ ));
+
+ self::assertEquals($base_id, $entity->base_id);
+ self::assertEquals($base_name, $entity->base_name);
+ self::assertEquals($epg_id, $entity->epg_id);
+ self::assertEquals($geo_data, $entity->geo_data);
+ self::assertEquals($href, $entity->href);
+ self::assertEquals($icon, $entity->icon);
+ self::assertEquals($id, $entity->id);
+ self::assertEquals($lang, $entity->lang);
+ self::assertEquals($name, $entity->name);
+ self::assertEquals($update_at, $entity->update_at);
+ self::assertEquals($week, $entity->week);
+ }
+}
diff --git a/tests/Entities/CountryEntityTest.php b/tests/Entities/CountryEntityTest.php
new file mode 100644
index 0000000..ffff4fd
--- /dev/null
+++ b/tests/Entities/CountryEntityTest.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Copyright 2020 “EPGService”
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+declare(strict_types = 1);
+
+namespace Tests\Entities;
+
+use EPGService\Entities\CountryEntity;
+use Faker\Factory as Faker;
+use PHPUnit\Framework\TestCase;
+
+/**
+ * @copyright Copyright © 2020 “Valentin Popov” <info@valentineus.link>
+ * @license http://www.apache.org/licenses/LICENSE-2.0
+ * @package Tests\Entities
+ */
+final class CountryEntityTest extends TestCase {
+ public function testCreateEntity(): void {
+ $faker = Faker::create();
+
+ $id = $faker->unique()->sha256;
+ $iso = $faker->countryCode;
+ $lang = $faker->languageCode;
+ $name = $faker->unique()->sha256;
+ $version = $faker->unique()->sha256;
+
+ $entity = CountryEntity::create(compact('id', 'iso', 'lang', 'name', 'version'));
+
+ self::assertEquals($id, $entity->id);
+ self::assertEquals($iso, $entity->iso);
+ self::assertEquals($lang, $entity->lang);
+ self::assertEquals($name, $entity->name);
+ self::assertEquals($version, $entity->version);
+ }
+}
diff --git a/tests/Entities/GenreEntityTest.php b/tests/Entities/GenreEntityTest.php
new file mode 100644
index 0000000..278fb68
--- /dev/null
+++ b/tests/Entities/GenreEntityTest.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * Copyright 2020 “EPGService”
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+declare(strict_types = 1);
+
+namespace Tests\Entities;
+
+use EPGService\Entities\GenreEntity;
+use Faker\Factory as Faker;
+use PHPUnit\Framework\TestCase;
+
+/**
+ * @copyright Copyright © 2020 “Valentin Popov” <info@valentineus.link>
+ * @license http://www.apache.org/licenses/LICENSE-2.0
+ * @package Tests\Entities
+ */
+final class GenreEntityTest extends TestCase {
+ public function testCreateEntity(): void {
+ $faker = Faker::create();
+
+ $id = $faker->unique()->sha256;
+ $lang = $faker->unique()->sha256;
+ $name = $faker->unique()->sha256;
+ $version = $faker->unique()->sha256;
+
+ $entity = GenreEntity::create(compact('id', 'lang', 'name', 'version'));
+
+ self::assertEquals($id, $entity->id);
+ self::assertEquals($lang, $entity->lang);
+ self::assertEquals($name, $entity->name);
+ self::assertEquals($version, $entity->version);
+ }
+}
diff --git a/tests/Entities/Program/CreditEntityTest.php b/tests/Entities/Program/CreditEntityTest.php
new file mode 100644
index 0000000..3c80300
--- /dev/null
+++ b/tests/Entities/Program/CreditEntityTest.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Copyright 2020 “EPGService”
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+declare(strict_types = 1);
+
+namespace Tests\Entities\Program;
+
+use EPGService\Entities\Program\CreditEntity;
+use Faker\Factory as Faker;
+use PHPUnit\Framework\TestCase;
+
+/**
+ * @copyright Copyright © 2020 “Valentin Popov” <info@valentineus.link>
+ * @license http://www.apache.org/licenses/LICENSE-2.0
+ * @package Tests\Entities\Program
+ */
+final class CreditEntityTest extends TestCase {
+ public function testCreateEntity(): void {
+ $faker = Faker::create();
+
+ $name = $faker->unique()->sha256;
+ $type = $faker->unique()->sha256;
+
+ $entity = CreditEntity::create(compact('name', 'type'));
+
+ self::assertEquals($name, $entity->name);
+ self::assertEquals($type, $entity->type);
+ }
+}
diff --git a/tests/Entities/ProgramEntityTest.php b/tests/Entities/ProgramEntityTest.php
new file mode 100644
index 0000000..c36e283
--- /dev/null
+++ b/tests/Entities/ProgramEntityTest.php
@@ -0,0 +1,83 @@
+<?php
+/**
+ * Copyright 2020 “EPGService”
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+declare(strict_types = 1);
+
+namespace Tests\Entities;
+
+use EPGService\Entities\ProgramEntity;
+use Faker\Factory as Faker;
+use PHPUnit\Framework\TestCase;
+use Tests\Utilities\GetCreditEntityUtility;
+
+/**
+ * @copyright Copyright © 2020 “Valentin Popov” <info@valentineus.link>
+ * @license http://www.apache.org/licenses/LICENSE-2.0
+ * @package Tests\Entities
+ */
+final class ProgramEntityTest extends TestCase {
+ public function testCreateEntity(): void {
+ $faker = Faker::create();
+
+ $categories = [$faker->unique()->sha256];
+ $channel_id = $faker->unique()->sha256;
+ $countries = [$faker->unique()->sha256];
+ $credits = [GetCreditEntityUtility::get()];
+ $date = $faker->unique()->dateTime;
+ $description = $faker->unique()->sha256;
+ $icons = [$faker->unique()->sha256];
+ $parents_guide = $faker->unique()->sha256;
+ $productions = [$faker->unique()->sha256];
+ $start = $faker->unique()->dateTime;
+ $stop = $faker->unique()->dateTime;
+ $sub_title = $faker->unique()->sha256;
+ $title = $faker->unique()->sha256;
+ $year = $faker->unique()->sha256;
+
+ $entity = ProgramEntity::create(compact(
+ 'categories',
+ 'channel_id',
+ 'countries',
+ 'credits',
+ 'date',
+ 'description',
+ 'icons',
+ 'parents_guide',
+ 'productions',
+ 'start',
+ 'stop',
+ 'sub_title',
+ 'title',
+ 'year'
+ ));
+
+ self::assertEquals($categories, $entity->categories);
+ self::assertEquals($channel_id, $entity->channel_id);
+ self::assertEquals($countries[0], $entity->countries[0]);
+ self::assertEquals($credits[0]->name, $entity->credits[0]->name);
+ self::assertEquals($date->getTimestamp(), $entity->date->getTimestamp());
+ self::assertEquals($description, $entity->description);
+ self::assertEquals($icons[0], $entity->icons[0]);
+ self::assertEquals($parents_guide, $entity->parents_guide);
+ self::assertEquals($productions[0], $entity->productions[0]);
+ self::assertEquals($start->getTimestamp(), $entity->start->getTimestamp());
+ self::assertEquals($stop->getTimestamp(), $entity->stop->getTimestamp());
+ self::assertEquals($sub_title, $entity->sub_title);
+ self::assertEquals($title, $entity->title);
+ self::assertEquals($year, $entity->year);
+ }
+}
diff --git a/tests/Environments/ServiceEnvironmentTest.php b/tests/Environments/ServiceEnvironmentTest.php
new file mode 100644
index 0000000..b14d909
--- /dev/null
+++ b/tests/Environments/ServiceEnvironmentTest.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Copyright 2020 “EPGService”
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+declare(strict_types = 1);
+
+namespace Tests\Environments;
+
+use EPGService\Environments\ServiceEnvironment;
+use Faker\Factory as Faker;
+use PHPUnit\Framework\TestCase;
+
+/**
+ * @copyright Copyright © 2020 “Valentin Popov” <info@valentineus.link>
+ * @license http://www.apache.org/licenses/LICENSE-2.0
+ * @package Tests\Environments
+ */
+final class ServiceEnvironmentTest extends TestCase {
+ public function testGetUrl(): void {
+ $key = Faker::create()->sha256;
+ $url = ServiceEnvironment::create($key)->getUrl();
+ self::assertStringContainsString($key, $url);
+ }
+}
diff --git a/tests/Parsers/IntegerParserTest.php b/tests/Parsers/IntegerParserTest.php
new file mode 100644
index 0000000..56c13ce
--- /dev/null
+++ b/tests/Parsers/IntegerParserTest.php
@@ -0,0 +1,36 @@
+<?php
+/**
+ * Copyright 2020 “EPGService”
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+declare(strict_types = 1);
+
+namespace Tests\Parsers;
+
+use EPGService\Parsers\IntegerParser;
+use Faker\Factory as Faker;
+use PHPUnit\Framework\TestCase;
+
+/**
+ * @copyright Copyright © 2020 “Valentin Popov” <info@valentineus.link>
+ * @license http://www.apache.org/licenses/LICENSE-2.0
+ * @package Tests\Parsers
+ */
+final class IntegerParserTest extends TestCase {
+ public function testValid(): void {
+ $number = Faker::create()->numberBetween(100, 200);
+ self::assertEquals($number, IntegerParser::get((string) $number));
+ }
+}
diff --git a/tests/Parsers/StringParserTest.php b/tests/Parsers/StringParserTest.php
new file mode 100644
index 0000000..5c1a82b
--- /dev/null
+++ b/tests/Parsers/StringParserTest.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Copyright 2020 “EPGService”
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+declare(strict_types = 1);
+
+namespace Tests\Parsers;
+
+use EPGService\Parsers\StringParser;
+use PHPUnit\Framework\TestCase;
+
+/**
+ * @copyright Copyright © 2020 “Valentin Popov” <info@valentineus.link>
+ * @license http://www.apache.org/licenses/LICENSE-2.0
+ * @package Tests\Parsers
+ */
+final class StringParserTest extends TestCase {
+ public function testValid(): void {
+ $string = '<h1>Hello World!</h1>';
+ self::assertEquals('Hello World!', StringParser::get($string));
+ }
+}
diff --git a/tests/Repositories/CategoryRepositoryTest.php b/tests/Repositories/CategoryRepositoryTest.php
new file mode 100644
index 0000000..25dbdd8
--- /dev/null
+++ b/tests/Repositories/CategoryRepositoryTest.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Copyright 2020 “EPGService”
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+declare(strict_types = 1);
+
+namespace Tests\Repositories;
+
+use EPGService\Repositories\CategoryRepository;
+use PHPUnit\Framework\TestCase;
+use Tests\Utilities\GetServiceEnvironment;
+
+/**
+ * @copyright Copyright © 2020 “Valentin Popov” <info@valentineus.link>
+ * @license http://www.apache.org/licenses/LICENSE-2.0
+ * @package Tests\Repositories
+ */
+final class CategoryRepositoryTest extends TestCase {
+ /**
+ * @throws \GuzzleHttp\Exception\GuzzleException
+ * @throws \RuntimeException
+ * @throws \Exception
+ */
+ public function testGetAction(): void {
+ $env = GetServiceEnvironment::get();
+
+ foreach (CategoryRepository::create($env)->get() as $category) {
+ /** @var \EPGService\Entities\CategoryEntity $category */
+
+ self::assertIsInt($category->id);
+ self::assertIsString($category->lang);
+ self::assertIsString($category->name);
+ self::assertIsString($category->version);
+ }
+ }
+}
diff --git a/tests/Repositories/ChannelRepositoryTest.php b/tests/Repositories/ChannelRepositoryTest.php
new file mode 100644
index 0000000..b9d9116
--- /dev/null
+++ b/tests/Repositories/ChannelRepositoryTest.php
@@ -0,0 +1,57 @@
+<?php
+/**
+ * Copyright 2020 “EPGService”
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+declare(strict_types = 1);
+
+namespace Tests\Repositories;
+
+use DateTime;
+use EPGService\Repositories\ChannelRepository;
+use PHPUnit\Framework\TestCase;
+use Tests\Utilities\GetServiceEnvironment;
+
+/**
+ * @copyright Copyright © 2020 “Valentin Popov” <info@valentineus.link>
+ * @license http://www.apache.org/licenses/LICENSE-2.0
+ * @package Tests\Repositories
+ */
+final class ChannelRepositoryTest extends TestCase {
+ /**
+ * @throws \GuzzleHttp\Exception\GuzzleException
+ * @throws \RuntimeException
+ * @throws \Exception
+ */
+ 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->week);
+ self::isInstanceOf(DateTime::class, $channel->update_at);
+ }
+ }
+}
diff --git a/tests/Repositories/CountryRepositoryTest.php b/tests/Repositories/CountryRepositoryTest.php
new file mode 100644
index 0000000..160e388
--- /dev/null
+++ b/tests/Repositories/CountryRepositoryTest.php
@@ -0,0 +1,44 @@
+<?php
+/**
+ * Copyright 2020 “EPGService”
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+declare(strict_types = 1);
+
+namespace Tests\Repositories;
+
+use EPGService\Repositories\CountryRepository;
+use PHPUnit\Framework\TestCase;
+use Tests\Utilities\GetServiceEnvironment;
+
+/**
+ * @copyright Copyright © 2020 “Valentin Popov” <info@valentineus.link>
+ * @license http://www.apache.org/licenses/LICENSE-2.0
+ * @package Tests\Repositories
+ */
+final class CountryRepositoryTest extends TestCase {
+ public function testActionGet(): void {
+ $env = GetServiceEnvironment::get();
+
+ foreach (CountryRepository::create($env)->get() as $country) {
+ /** @var \EPGService\Entities\CountryEntity $country */
+ self::assertNotEmpty($country->id);
+ self::assertNotEmpty($country->iso);
+ self::assertNotEmpty($country->lang);
+ self::assertNotEmpty($country->name);
+ self::assertNotEmpty($country->version);
+ }
+ }
+}
diff --git a/tests/Repositories/GenreRepositoryTest.php b/tests/Repositories/GenreRepositoryTest.php
new file mode 100644
index 0000000..8afe351
--- /dev/null
+++ b/tests/Repositories/GenreRepositoryTest.php
@@ -0,0 +1,49 @@
+<?php
+/**
+ * Copyright 2020 “EPGService”
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+declare(strict_types = 1);
+
+namespace Tests\Repositories;
+
+use EPGService\Repositories\GenreRepository;
+use PHPUnit\Framework\TestCase;
+use Tests\Utilities\GetServiceEnvironment;
+
+/**
+ * @copyright Copyright © 2020 “Valentin Popov” <info@valentineus.link>
+ * @license http://www.apache.org/licenses/LICENSE-2.0
+ * @package Tests\Repositories
+ */
+final class GenreRepositoryTest extends TestCase {
+ /**
+ * @throws \GuzzleHttp\Exception\GuzzleException
+ * @throws \RuntimeException
+ * @throws \Exception
+ */
+ public function testGetAction(): void {
+ $env = GetServiceEnvironment::get();
+
+ foreach (GenreRepository::create($env)->get() as $genre) {
+ /** @var \EPGService\Entities\GenreEntity $genre */
+
+ self::assertIsInt($genre->id);
+ self::assertIsString($genre->lang);
+ self::assertIsString($genre->name);
+ self::assertIsString($genre->version);
+ }
+ }
+}
diff --git a/tests/Repositories/ProgramRepositoryTest.php b/tests/Repositories/ProgramRepositoryTest.php
new file mode 100644
index 0000000..f943bb6
--- /dev/null
+++ b/tests/Repositories/ProgramRepositoryTest.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * Copyright 2020 “EPGService”
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+declare(strict_types = 1);
+
+namespace Tests\Repositories;
+
+use EPGService\Repositories\ChannelRepository;
+use EPGService\Repositories\ProgramRepository;
+use PHPUnit\Framework\TestCase;
+use Tests\Utilities\GetServiceEnvironment;
+
+/**
+ * @copyright Copyright © 2020 “Valentin Popov” <info@valentineus.link>
+ * @license http://www.apache.org/licenses/LICENSE-2.0
+ * @package Tests\Repositories
+ */
+final class ProgramRepositoryTest extends TestCase {
+ /**
+ * @throws \GuzzleHttp\Exception\GuzzleException
+ * @throws \RuntimeException
+ * @throws \Exception
+ */
+ public function testGetAction(): void {
+ $week = date('Y-m-d', strtotime('this week'));
+ $env = GetServiceEnvironment::get();
+ $channels = ChannelRepository::create($env)->get();
+ $channel = array_shift($channels);
+
+ foreach (ProgramRepository::create($env, $channel->id, $week)->get() as $program) {
+ /** @var \EPGService\Entities\ProgramEntity $program */
+
+ self::assertNotEmpty($program->channel_id);
+ self::assertNotEmpty($program->start);
+ self::assertNotEmpty($program->stop);
+ self::assertNotEmpty($program->title);
+ }
+ }
+}
diff --git a/tests/Utilities/GetCreditEntityUtility.php b/tests/Utilities/GetCreditEntityUtility.php
new file mode 100644
index 0000000..f46b176
--- /dev/null
+++ b/tests/Utilities/GetCreditEntityUtility.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Copyright 2020 “EPGService”
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+declare(strict_types = 1);
+
+namespace Tests\Utilities;
+
+use EPGService\Entities\Program\CreditEntity;
+use Faker\Factory as Faker;
+
+/**
+ * @copyright Copyright © 2020 “Valentin Popov” <info@valentineus.link>
+ * @license http://www.apache.org/licenses/LICENSE-2.0
+ * @package Tests\Utilities
+ */
+final class GetCreditEntityUtility {
+ public static function get(): CreditEntity {
+ $faker = Faker::create();
+
+ return CreditEntity::create([
+ 'name' => $faker->unique()->sha256,
+ 'type' => $faker->unique()->sha256,
+ ]);
+ }
+}
diff --git a/tests/Utilities/GetKeyUtility.php b/tests/Utilities/GetKeyUtility.php
new file mode 100644
index 0000000..a72601e
--- /dev/null
+++ b/tests/Utilities/GetKeyUtility.php
@@ -0,0 +1,39 @@
+<?php
+/**
+ * Copyright 2020 “EPGService”
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+declare(strict_types = 1);
+
+namespace Tests\Utilities;
+
+use Dotenv\Dotenv;
+use function dirname;
+
+/**
+ * @copyright Copyright © 2020 “Valentin Popov” <info@valentineus.link>
+ * @license http://www.apache.org/licenses/LICENSE-2.0
+ * @package Tests\Utilities
+ */
+final class GetKeyUtility {
+ /**
+ * @return string
+ */
+ public static function get(): string {
+ $result = Dotenv::createImmutable(dirname(__DIR__, 2))->load();
+
+ return $result['EPG_SERVICE_KEY'] ?? '';
+ }
+}
diff --git a/tests/Utilities/GetServiceEnvironment.php b/tests/Utilities/GetServiceEnvironment.php
new file mode 100644
index 0000000..cba08ae
--- /dev/null
+++ b/tests/Utilities/GetServiceEnvironment.php
@@ -0,0 +1,38 @@
+<?php
+/**
+ * Copyright 2020 “EPGService”
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an “AS IS” BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+declare(strict_types = 1);
+
+namespace Tests\Utilities;
+
+use EPGService\Environments\ServiceEnvironment;
+
+/**
+ * @copyright Copyright © 2020 “Valentin Popov” <info@valentineus.link>
+ * @license http://www.apache.org/licenses/LICENSE-2.0
+ * @package Tests\Utilities
+ */
+final class GetServiceEnvironment {
+ /**
+ * @return \EPGService\Environments\ServiceEnvironment
+ */
+ public static function get(): ServiceEnvironment {
+ $key = GetKeyUtility::get();
+
+ return ServiceEnvironment::create($key);
+ }
+}