2017-02-16 11:09:37 -05:00
|
|
|
<?php declare(strict_types=1);
|
|
|
|
/**
|
|
|
|
* Hummingbird Anime List Client
|
|
|
|
*
|
2018-08-22 13:48:27 -04:00
|
|
|
* An API client for Kitsu to manage anime and manga watch lists
|
2017-02-16 11:09:37 -05:00
|
|
|
*
|
2018-10-01 11:35:51 -04:00
|
|
|
* PHP version 7.1
|
2017-02-16 11:09:37 -05:00
|
|
|
*
|
|
|
|
* @package HummingbirdAnimeClient
|
|
|
|
* @author Timothy J. Warren <tim@timshomepage.net>
|
2018-01-15 14:43:15 -05:00
|
|
|
* @copyright 2015 - 2018 Timothy J. Warren
|
2017-02-16 11:09:37 -05:00
|
|
|
* @license http://www.opensource.org/licenses/mit-license.html MIT License
|
2018-10-01 11:35:51 -04:00
|
|
|
* @version 4.1
|
2017-03-07 20:53:58 -05:00
|
|
|
* @link https://git.timshomepage.net/timw4mail/HummingBirdAnimeClient
|
2017-02-16 11:09:37 -05:00
|
|
|
*/
|
2017-02-15 11:49:38 -05:00
|
|
|
|
|
|
|
namespace Aviat\AnimeClient\Tests;
|
|
|
|
|
2015-10-09 14:34:55 -04:00
|
|
|
use Aviat\AnimeClient\MenuGenerator;
|
2016-10-20 22:32:17 -04:00
|
|
|
use Aviat\Ion\Friend;
|
2015-10-09 14:34:55 -04:00
|
|
|
|
2017-02-15 16:40:18 -05:00
|
|
|
class MenuGeneratorTest extends AnimeClientTestCase {
|
2015-10-09 14:34:55 -04:00
|
|
|
|
|
|
|
protected $generator;
|
|
|
|
protected $friend;
|
|
|
|
|
|
|
|
public function setUp()
|
|
|
|
{
|
|
|
|
parent::setUp();
|
|
|
|
$this->generator = new MenuGenerator($this->container);
|
|
|
|
}
|
|
|
|
|
|
|
|
public function testSanity()
|
|
|
|
{
|
|
|
|
$generator = new MenuGenerator($this->container);
|
2018-01-16 14:58:07 -05:00
|
|
|
$this->assertInstanceOf(MenuGenerator::class, $generator);
|
2015-10-09 14:34:55 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
public function testParseConfig()
|
|
|
|
{
|
|
|
|
$friend = new Friend($this->generator);
|
2015-10-15 09:25:30 -04:00
|
|
|
$menus = [
|
|
|
|
'anime_list' => [
|
|
|
|
'route_prefix' => '/anime',
|
|
|
|
'items' => [
|
|
|
|
'watching' => '/watching',
|
|
|
|
'plan_to_watch' => '/plan_to_watch',
|
|
|
|
'on_hold' => '/on_hold',
|
|
|
|
'dropped' => '/dropped',
|
|
|
|
'completed' => '/completed',
|
|
|
|
'all' => '/all'
|
|
|
|
]
|
|
|
|
],
|
|
|
|
];
|
2015-10-09 14:34:55 -04:00
|
|
|
$expected = [
|
|
|
|
'anime_list' => [
|
|
|
|
'Watching' => '/anime/watching',
|
|
|
|
'Plan To Watch' => '/anime/plan_to_watch',
|
|
|
|
'On Hold' => '/anime/on_hold',
|
|
|
|
'Dropped' => '/anime/dropped',
|
|
|
|
'Completed' => '/anime/completed',
|
|
|
|
'All' => '/anime/all'
|
|
|
|
]
|
|
|
|
];
|
2017-02-16 14:30:06 -05:00
|
|
|
$this->assertEquals($expected, $friend->parseConfig($menus));
|
2015-10-09 14:34:55 -04:00
|
|
|
}
|
2015-11-17 16:45:41 -05:00
|
|
|
|
|
|
|
public function testBadConfig()
|
|
|
|
{
|
|
|
|
$menus = [
|
|
|
|
'anime_list' => [
|
|
|
|
'route_prefix' => '/anime',
|
|
|
|
'items' => [
|
|
|
|
'watching' => '/watching',
|
|
|
|
'plan_to_watch' => '/plan_to_watch',
|
|
|
|
'on_hold' => '/on_hold',
|
|
|
|
'dropped' => '/dropped',
|
|
|
|
'completed' => '/completed',
|
|
|
|
'all' => '/all'
|
|
|
|
]
|
|
|
|
],
|
|
|
|
];
|
|
|
|
$config = $this->container->get('config');
|
|
|
|
$config->set('menus', $menus);
|
2016-08-29 15:36:36 -04:00
|
|
|
$this->container->setInstance('config', $config);
|
2015-11-17 16:45:41 -05:00
|
|
|
$expected = '';
|
|
|
|
|
|
|
|
$this->assertEquals($expected, $this->generator->generate('manga_list'));
|
|
|
|
}
|
2015-10-09 14:34:55 -04:00
|
|
|
}
|