diff options
author | Valentin Popov <info@valentineus.link> | 2020-07-19 20:05:55 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-19 20:05:55 +0300 |
commit | 24da358b533bcf580e638c66e1ba8f2980d5bc12 (patch) | |
tree | 0f3bb42f2143c782f5289dfb81c3f57ba712500c /tests | |
parent | 1db2234df48d04e832071cab5d4e8aa9b8673116 (diff) | |
parent | 506e16bdfcae6996adacdcb5ba23fdf45c98bafe (diff) | |
download | php-epg-service-24da358b533bcf580e638c66e1ba8f2980d5bc12.tar.xz php-epg-service-24da358b533bcf580e638c66e1ba8f2980d5bc12.zip |
Merge pull request #1 from valentineus/develop
v0.0.1
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Entities/CategoryEntityTest.php | 47 | ||||
-rw-r--r-- | tests/Entities/ChannelEntityTest.php | 73 | ||||
-rw-r--r-- | tests/Entities/CountryEntityTest.php | 49 | ||||
-rw-r--r-- | tests/Entities/GenreEntityTest.php | 47 | ||||
-rw-r--r-- | tests/Entities/Program/CreditEntityTest.php | 43 | ||||
-rw-r--r-- | tests/Entities/ProgramEntityTest.php | 83 | ||||
-rw-r--r-- | tests/Environments/ServiceEnvironmentTest.php | 37 | ||||
-rw-r--r-- | tests/Parsers/IntegerParserTest.php | 36 | ||||
-rw-r--r-- | tests/Parsers/StringParserTest.php | 35 | ||||
-rw-r--r-- | tests/Repositories/CategoryRepositoryTest.php | 49 | ||||
-rw-r--r-- | tests/Repositories/ChannelRepositoryTest.php | 57 | ||||
-rw-r--r-- | tests/Repositories/CountryRepositoryTest.php | 44 | ||||
-rw-r--r-- | tests/Repositories/GenreRepositoryTest.php | 49 | ||||
-rw-r--r-- | tests/Repositories/ProgramRepositoryTest.php | 53 | ||||
-rw-r--r-- | tests/Utilities/GetCreditEntityUtility.php | 39 | ||||
-rw-r--r-- | tests/Utilities/GetKeyUtility.php | 39 | ||||
-rw-r--r-- | tests/Utilities/GetServiceEnvironment.php | 38 |
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); + } +} |