From 231babe2181d66864341b0baf163585741fc4c0c Mon Sep 17 00:00:00 2001 From: "Timothy J. Warren" Date: Tue, 16 Jan 2018 14:58:07 -0500 Subject: [PATCH] Code style improvements --- app/appConf/base_config.php | 2 +- app/bootstrap.php | 4 ++-- composer.json | 2 +- index.php | 4 ++-- phpstan.neon | 7 +++++++ src/API/HummingbirdClient.php | 10 +-------- src/API/JsonAPI.php | 4 ++-- src/API/Kitsu/Model.php | 4 ++-- src/API/ListItemInterface.php | 6 +++--- src/API/MAL/Model.php | 11 +++++++++- src/API/ParallelAPIRequest.php | 4 ++-- src/API/XML.php | 4 ++-- src/AnimeClient.php | 8 +++---- src/Command/BaseCommand.php | 10 +++------ src/Command/SyncKitsuWithMal.php | 2 +- src/Controller.php | 31 ++++++++++++++-------------- src/Controller/Anime.php | 30 ++++++++------------------- src/Controller/Character.php | 12 ++++++----- src/Controller/Manga.php | 3 ++- src/Controller/MangaCollection.php | 8 +++---- src/Dispatcher.php | 8 ++++--- src/MenuGenerator.php | 6 +++++- src/Model/AnimeCollection.php | 4 ++-- src/Model/DB.php | 2 +- src/Model/MangaCollection.php | 6 +++--- tests/API/APIRequestBuilderTest.php | 2 +- tests/API/CacheTraitTest.php | 11 ++++++---- tests/API/ParallelAPIRequestTest.php | 18 +++++++++------- tests/DispatcherTest.php | 8 ------- tests/MenuGeneratorTest.php | 2 +- tests/bootstrap.php | 8 +++---- 31 files changed, 119 insertions(+), 122 deletions(-) create mode 100644 phpstan.neon diff --git a/app/appConf/base_config.php b/app/appConf/base_config.php index b8b645ad..c58684aa 100644 --- a/app/appConf/base_config.php +++ b/app/appConf/base_config.php @@ -26,7 +26,7 @@ $ROOT_DIR = realpath("{$APP_DIR}/../"); $tomlConfig = loadToml(__DIR__); -$base_config = array_merge($tomlConfig, [ +return array_merge($tomlConfig, [ 'asset_dir' => "{$ROOT_DIR}/public", // Template file path diff --git a/app/bootstrap.php b/app/bootstrap.php index 8b0e1db4..1ee84cb5 100644 --- a/app/bootstrap.php +++ b/app/bootstrap.php @@ -36,7 +36,7 @@ use Zend\Diactoros\{Response, ServerRequestFactory}; // ----------------------------------------------------------------------------- // Setup DI container // ----------------------------------------------------------------------------- -return function(array $configArray = []) { +return function (array $configArray = []) { $container = new Container(); // ------------------------------------------------------------------------- @@ -49,7 +49,7 @@ return function(array $configArray = []) { $kitsuRequestLogger->pushHandler(new RotatingFileHandler(__DIR__ . '/logs/kitsu_request.log', Logger::NOTICE)); $malRequestLogger = new Logger('mal-request'); $malRequestLogger->pushHandler(new RotatingFileHandler(__DIR__ . '/logs/mal_request.log', Logger::NOTICE)); - $container->setLogger($appLogger, 'default'); + $container->setLogger($appLogger); $container->setLogger($kitsuRequestLogger, 'kitsu-request'); $container->setLogger($malRequestLogger, 'mal-request'); diff --git a/composer.json b/composer.json index 4192c657..f7b6eb70 100644 --- a/composer.json +++ b/composer.json @@ -52,7 +52,7 @@ "clean": "vendor/bin/robo clean", "coverage": "phpdbg -qrr -- vendor/bin/phpunit -c build", "docs": "vendor/bin/phpdox", - "phpstan": "phpstan analyse src tests", + "phpstan": "phpstan analyse -l 3 ./phpstan.neon src tests", "watch:css": "cd public && npm run watch", "test": "vendor/bin/phpunit" } diff --git a/index.php b/index.php index fb774bc7..6edaeba5 100644 --- a/index.php +++ b/index.php @@ -40,8 +40,8 @@ $CONF_DIR = _dir($APP_DIR, 'config'); // ----------------------------------------------------------------------------- // Dependency Injection setup // ----------------------------------------------------------------------------- -require_once $APPCONF_DIR . '/base_config.php'; // $base_config -$di = require $APP_DIR . '/bootstrap.php'; +$base_config = require $APPCONF_DIR . '/base_config.php'; +$di = require_once $APP_DIR . '/bootstrap.php'; $config = loadToml($CONF_DIR); $config_array = array_merge($base_config, $config); diff --git a/phpstan.neon b/phpstan.neon new file mode 100644 index 00000000..7d68366f --- /dev/null +++ b/phpstan.neon @@ -0,0 +1,7 @@ +parameters: + ignoreErrors: + - '#Access to an undefined property Aviat\\\Ion\\\Friend::\$[a-zA-Z0-9_]+#' + - '#Call to an undefined method Aviat\\\Ion\\\Friend:[a-zA-Z0-9_]+\(\)#' + - '#Call to an undefined method Aura\\\Html\\\HelperLocator:[a-zA-Z0-9_]+\(\)#' + excludes_analyze: + - %rootDir%/test_views/* \ No newline at end of file diff --git a/src/API/HummingbirdClient.php b/src/API/HummingbirdClient.php index d8ae80db..7cf46123 100644 --- a/src/API/HummingbirdClient.php +++ b/src/API/HummingbirdClient.php @@ -30,15 +30,7 @@ use Amp\{ TimeoutCancellationToken }; use Amp\Artax\{ - ConnectionInfo, - Client, - HttpException, - HttpSocketPool, - MetaInfo, - Response, - Request, - TimeoutException, - TlsInfo + ConnectionInfo, Client, DnsException, HttpException, HttpSocketPool, MetaInfo, ParseException, RequestBody, Response, Request, SocketException, TimeoutException, TlsInfo, TooManyRedirectsException }; use Amp\Artax\Cookie\{ Cookie, diff --git a/src/API/JsonAPI.php b/src/API/JsonAPI.php index 638d7ba1..05ac78ea 100644 --- a/src/API/JsonAPI.php +++ b/src/API/JsonAPI.php @@ -44,7 +44,7 @@ class JsonAPI { * Inline all included data * * @param array $data - The raw JsonAPI response data - * @return data + * @return array */ public static function organizeData(array $data): array { @@ -54,7 +54,7 @@ class JsonAPI { ]; // Reorganize included data - $included = (array_key_exists('included', $data)) + $included = array_key_exists('included', $data) ? static::organizeIncluded($data['included']) : []; diff --git a/src/API/Kitsu/Model.php b/src/API/Kitsu/Model.php index 149ca9bd..3f43a782 100644 --- a/src/API/Kitsu/Model.php +++ b/src/API/Kitsu/Model.php @@ -116,7 +116,7 @@ class Model { ] ]); $data = Json::decode(wait($response->getBody())); - + //dump($response); if (array_key_exists('access_token', $data)) @@ -763,7 +763,7 @@ class Model { * Get the mal id for the manga represented by the kitsu id * to enable updating MyAnimeList * - * @param string $kitsuAnimeId The id of the anime on Kitsu + * @param string $kitsuMangaId The id of the manga on Kitsu * @return string|null Returns the mal id if it exists, otherwise null */ public function getMalIdForManga(string $kitsuMangaId) diff --git a/src/API/ListItemInterface.php b/src/API/ListItemInterface.php index 7f4f209b..bd252417 100644 --- a/src/API/ListItemInterface.php +++ b/src/API/ListItemInterface.php @@ -27,7 +27,7 @@ interface ListItemInterface { * Create a list item * * @param array $data - - * @return bool + * @return Request */ public function create(array $data): Request; @@ -44,7 +44,7 @@ interface ListItemInterface { * * @param string $id - The id of the list item to update * @param array $data - The data with which to update the list item - * @return Response + * @return Request */ public function update(string $id, array $data): Request; @@ -52,7 +52,7 @@ interface ListItemInterface { * Delete a list item * * @param string $id - The id of the list item to delete - * @return bool + * @return Request */ public function delete(string $id): Request; } \ No newline at end of file diff --git a/src/API/MAL/Model.php b/src/API/MAL/Model.php index 006813e8..7c807f31 100644 --- a/src/API/MAL/Model.php +++ b/src/API/MAL/Model.php @@ -38,6 +38,11 @@ class Model { */ protected $animeListTransformer; + /** + * @var MangaListTransformer + */ + protected $mangaListTransformer; + /** * @var ListItem */ @@ -76,6 +81,8 @@ class Model { */ public function createListItem(array $data, string $type = 'anime'): Request { + $createData = []; + if ($type === 'anime') { $createData = [ @@ -119,7 +126,7 @@ class Model { ] ]); - return (array_key_exists($type, $list['myanimelist'])) + return array_key_exists($type, $list['myanimelist']) ? $list['myanimelist'][$type] : []; } @@ -146,6 +153,8 @@ class Model { */ public function updateListItem(array $data, string $type = 'anime'): Request { + $updateData = []; + if ($type === 'anime') { $updateData = $this->animeListTransformer->untransform($data); diff --git a/src/API/ParallelAPIRequest.php b/src/API/ParallelAPIRequest.php index 42a3a0b4..a446fc62 100644 --- a/src/API/ParallelAPIRequest.php +++ b/src/API/ParallelAPIRequest.php @@ -34,7 +34,7 @@ class ParallelAPIRequest { /** * Add a request * - * @param string|Request $request + * @param string|\Amp\Artax\Request $request * @param string|number $key * @return self */ @@ -53,7 +53,7 @@ class ParallelAPIRequest { /** * Add multiple requests * - * @param string[]|Request[] $requests + * @param string[]|\Amp\Artax\Request[] $requests * @return self */ public function addRequests(array $requests): self diff --git a/src/API/XML.php b/src/API/XML.php index f84d512c..09e5fd4f 100644 --- a/src/API/XML.php +++ b/src/API/XML.php @@ -16,7 +16,7 @@ namespace Aviat\AnimeClient\API; -use DOMDocument, DOMNode, DOMNodelist; +use DOMDocument, DOMNode, DOMNodeList; /** * XML <=> PHP Array codec @@ -180,7 +180,7 @@ class XML { // except for the xml declaration tag, Which looks // something like: /* */ - + return preg_replace('/([^\?])>\s+<', $xml); } diff --git a/src/AnimeClient.php b/src/AnimeClient.php index f1e7bfcd..0e15f4c1 100644 --- a/src/AnimeClient.php +++ b/src/AnimeClient.php @@ -18,15 +18,15 @@ namespace Aviat\AnimeClient; use Yosymfony\Toml\Toml; -if ( ! defined('SRC_DIR')) +if ( ! \defined('SRC_DIR')) { \define('SRC_DIR', \realpath(__DIR__)); } const SESSION_SEGMENT = 'Aviat\AnimeClient\Auth'; -const DEFAULT_CONTROLLER = 'Aviat\AnimeClient\Controller\Index'; -const DEFAULT_CONTROLLER_NAMESPACE = 'Aviat\AnimeClient\Controller'; -const DEFAULT_LIST_CONTROLLER = 'Aviat\AnimeClient\Controller\Anime'; +const DEFAULT_CONTROLLER = Controller\Index::class; +const DEFAULT_CONTROLLER_NAMESPACE = Controller::class; +const DEFAULT_LIST_CONTROLLER = Controller\Anime::class; const DEFAULT_CONTROLLER_METHOD = 'index'; const NOT_FOUND_METHOD = 'notFound'; const ERROR_MESSAGE_METHOD = 'errorPage'; diff --git a/src/Command/BaseCommand.php b/src/Command/BaseCommand.php index d1ae0e6c..7a870197 100644 --- a/src/Command/BaseCommand.php +++ b/src/Command/BaseCommand.php @@ -19,11 +19,7 @@ namespace Aviat\AnimeClient\Command; use function Aviat\AnimeClient\loadToml; use Aura\Session\SessionFactory; -use Aviat\AnimeClient\{ - AnimeClient, - Model, - Util -}; +use Aviat\AnimeClient\Util; use Aviat\AnimeClient\API\CacheTrait; use Aviat\AnimeClient\API\{Kitsu, MAL}; use Aviat\AnimeClient\API\Kitsu\KitsuRequestBuilder; @@ -67,7 +63,7 @@ class BaseCommand extends Command { $APP_DIR = realpath(__DIR__ . '/../../app'); $APPCONF_DIR = realpath("{$APP_DIR}/appConf/"); $CONF_DIR = realpath("{$APP_DIR}/config/"); - require_once $APPCONF_DIR . '/base_config.php'; // $base_config + $base_config = require_once $APPCONF_DIR . '/base_config.php'; $config = loadToml($CONF_DIR); $config_array = array_merge($base_config, $config); @@ -85,7 +81,7 @@ class BaseCommand extends Command { $kitsu_request_logger->pushHandler(new RotatingFileHandler($APP_DIR . '/logs/kitsu_request-cli.log', Logger::NOTICE)); $mal_request_logger = new Logger('mal-request'); $mal_request_logger->pushHandler(new RotatingFileHandler($APP_DIR . '/logs/mal_request-cli.log', Logger::NOTICE)); - $container->setLogger($app_logger, 'default'); + $container->setLogger($app_logger); $container->setLogger($kitsu_request_logger, 'kitsu-request'); $container->setLogger($mal_request_logger, 'mal-request'); diff --git a/src/Command/SyncKitsuWithMal.php b/src/Command/SyncKitsuWithMal.php index a4142133..4fb248e3 100644 --- a/src/Command/SyncKitsuWithMal.php +++ b/src/Command/SyncKitsuWithMal.php @@ -51,7 +51,6 @@ class SyncKitsuWithMal extends BaseCommand { * @param array $args * @param array $options * @return void - * @throws \ConsoleKit\ConsoleException */ public function execute(array $args, array $options = []) { @@ -80,6 +79,7 @@ class SyncKitsuWithMal extends BaseCommand { ); } + $kitsuCount = 0; try { $kitsuCount = $this->kitsuModel->{"get{$uType}ListCount"}(); diff --git a/src/Controller.php b/src/Controller.php index b3f09b65..de45bfa5 100644 --- a/src/Controller.php +++ b/src/Controller.php @@ -18,15 +18,20 @@ namespace Aviat\AnimeClient; use function Aviat\Ion\_dir; -use Aviat\Ion\Di\{ContainerAware, ContainerInterface}; +use Aviat\Ion\Di\{ + ContainerAware, + ContainerInterface +}; +use Aviat\Ion\Di\Exception\{ + ContainerException, + NotFoundException +}; use Aviat\Ion\Exception\DoubleRenderException; use Aviat\Ion\View\{HtmlView, HttpView, JsonView}; use InvalidArgumentException; /** * Controller base, defines output methods - * - * @property $response Response object */ class Controller { @@ -46,22 +51,16 @@ class Controller { /** * Request object - * @var object $request + * @var \Psr\Http\Message\ServerRequestInterface $request */ protected $request; /** * Response object - * @var object $response + * @var \Psr\Http\Message\ResponseInterface $response */ public $response; - /** - * The api model for the current controller - * @var object - */ - protected $model; - /** * Url generation class * @var UrlGenerator @@ -94,8 +93,8 @@ class Controller { * Constructor * * @param ContainerInterface $container - * @throws \Aviat\Ion\Di\ContainerException - * @throws \Aviat\Ion\Di\NotFoundException + * @throws ContainerException + * @throws NotFoundException */ public function __construct(ContainerInterface $container) { @@ -146,8 +145,8 @@ class Controller { * Set the current url in the session as the target of a future redirect * * @param string|null $url - * @throws \Aviat\Ion\Di\ContainerException - * @throws \Aviat\Ion\Di\NotFoundException + * @throws ContainerException + * @throws NotFoundException * @return void */ public function setSessionRedirect(string $url = NULL) @@ -174,7 +173,7 @@ class Controller { if (null === $url) { $url = $util->isViewPage() - ? $this->request->url->get() + ? $this->request->getUri()->__toString() : $serverParams['HTTP_REFERER']; } diff --git a/src/Controller/Anime.php b/src/Controller/Anime.php index 845cc0d7..f8f9039d 100644 --- a/src/Controller/Anime.php +++ b/src/Controller/Anime.php @@ -17,10 +17,8 @@ namespace Aviat\AnimeClient\Controller; use Aviat\AnimeClient\Controller as BaseController; -use Aviat\AnimeClient\API\Kitsu\{ - Enum\AnimeWatchingStatus as KitsuWatchingStatus, - Transformer\AnimeListTransformer -}; +use Aviat\AnimeClient\API\Kitsu\Transformer\AnimeListTransformer; +use Aviat\AnimeClient\API\Enum\AnimeWatchingStatus\Kitsu as KitsuWatchingStatus; use Aviat\AnimeClient\API\Mapping\AnimeWatchingStatus; use Aviat\Ion\Di\ContainerInterface; use Aviat\Ion\Json; @@ -35,22 +33,10 @@ class Anime extends BaseController { /** * The anime list model - * @var object $model + * @var \Aviat\AnimeClient\Model\Anime $model */ protected $model; - /** - * Data to be sent to all routes in this controller - * @var array $baseData - */ - protected $baseData; - - /** - * Data cache - * @var \Psr\Cache\CachePoolInterface - */ - protected $cache; - /** * Constructor * @@ -158,7 +144,7 @@ class Anime extends BaseController { */ public function edit($id, $status = "all") { - $item = $this->model->getLibraryItem($id, $status); + $item = $this->model->getLibraryItem($id); $this->setSessionRedirect(); $this->outputHTML('anime/edit', [ @@ -203,7 +189,7 @@ class Anime extends BaseController { if ($fullResult['statusCode'] === 200) { - $this->setFlashMessage("Successfully updated.", 'success'); + $this->setFlashMessage('Successfully updated.', 'success'); $this->cache->clear(); } else @@ -230,7 +216,7 @@ class Anime extends BaseController { $data = $this->request->getParsedBody(); } - $response = $this->model->updateLibraryItem($data, $data); + $response = $this->model->updateLibraryItem($data); $this->cache->clear(); $this->outputJSON($response['body'], $response['statusCode']); @@ -272,12 +258,14 @@ class Anime extends BaseController { if (empty($data)) { - return $this->notFound( + $this->notFound( $this->config->get('whose_list') . "'s Anime List · Anime · " . 'Anime not found', 'Anime Not Found' ); + + return; } if (array_key_exists('characters', $data['included'])) diff --git a/src/Controller/Character.php b/src/Controller/Character.php index 316db69a..4381cd5e 100644 --- a/src/Controller/Character.php +++ b/src/Controller/Character.php @@ -35,13 +35,15 @@ class Character extends BaseController { if (( ! array_key_exists('data', $rawData)) || empty($rawData['data'])) { - return $this->notFound( + $this->notFound( $this->formatTitle( 'Characters', 'Character not found' ), 'Character Not Found' ); + + return; } $data = JsonAPI::organizeData($rawData); @@ -110,22 +112,22 @@ class Character extends BaseController { return $output; } - + private function getCastCount(array $cast): int { $count = 0; - + foreach($cast as $role) { if ( - array_key_exists('attributes', $role) && + array_key_exists('attributes', $role) && array_key_exists('role', $role['attributes']) && ( ! is_null($role['attributes']['role'])) ) { $count++; } } - + return $count; } diff --git a/src/Controller/Manga.php b/src/Controller/Manga.php index 0d54718a..a365cd80 100644 --- a/src/Controller/Manga.php +++ b/src/Controller/Manga.php @@ -265,12 +265,13 @@ class Manga extends Controller { if (empty($data)) { - return $this->notFound( + $this->notFound( $this->config->get('whose_list') . "'s Manga List · Manga · " . 'Manga not found', 'Manga Not Found' ); + return; } foreach($data['included'] as $included) diff --git a/src/Controller/MangaCollection.php b/src/Controller/MangaCollection.php index f4c59dae..b03f1970 100644 --- a/src/Controller/MangaCollection.php +++ b/src/Controller/MangaCollection.php @@ -18,8 +18,8 @@ namespace Aviat\AnimeClient\Controller; use Aviat\AnimeClient\Controller as BaseController; use Aviat\AnimeClient\Model\{ - manga as mangaModel, - mangaCollection as mangaCollectionModel + Manga as MangaModel, + MangaCollection as MangaCollectionModel }; use Aviat\AnimeClient\UrlGenerator; use Aviat\Ion\Di\ContainerInterface; @@ -31,13 +31,13 @@ class MangaCollection extends BaseController { /** * The manga collection model - * @var mangaCollectionModel $mangaCollectionModel + * @var MangaCollectionModel $mangaCollectionModel */ private $mangaCollectionModel; /** * The manga API model - * @var mangaModel $mangaModel + * @var MangaModel $mangaModel */ private $mangaModel; diff --git a/src/Dispatcher.php b/src/Dispatcher.php index 75609ed1..e05f2a1c 100644 --- a/src/Dispatcher.php +++ b/src/Dispatcher.php @@ -18,6 +18,8 @@ namespace Aviat\AnimeClient; use function Aviat\Ion\_dir; +use Aura\Router\Matcher; + use Aviat\AnimeClient\API\FailedResponseException; use Aviat\Ion\Di\ContainerInterface; use Aviat\Ion\Friend; @@ -38,7 +40,7 @@ class Dispatcher extends RoutingBase { /** * The route matcher - * @var object $matcher + * @var Matcher $matcher */ protected $matcher; @@ -72,14 +74,14 @@ class Dispatcher extends RoutingBase { /** * Get the current route object, if one matches * - * @return object + * @return \Aura\Router\Route|false */ public function getRoute() { $logger = $this->container->getLogger('default'); $rawRoute = $this->request->getUri()->getPath(); - $routePath = "/" . trim($rawRoute, '/'); + $routePath = '/' . trim($rawRoute, '/'); $logger->info('Dispatcher - Routing data from get_route method'); $logger->info(print_r([ diff --git a/src/MenuGenerator.php b/src/MenuGenerator.php index 845207c5..b7c92da5 100644 --- a/src/MenuGenerator.php +++ b/src/MenuGenerator.php @@ -16,8 +16,11 @@ namespace Aviat\AnimeClient; -use Aviat\Ion\{ArrayWrapper, StringWrapper}; +use Aviat\Ion\{ + ArrayWrapper, StringWrapper +}; use Aviat\Ion\Di\ContainerInterface; +use Aviat\Ion\Exception\ConfigException; /** * Helper object to manage menu creation and selection @@ -80,6 +83,7 @@ class MenuGenerator extends UrlGenerator { * Generate the html structure of the menu selected * * @param string $menu + * @throws ConfigException * @return string */ public function generate($menu) diff --git a/src/Model/AnimeCollection.php b/src/Model/AnimeCollection.php index 7fac6835..8a9e307d 100644 --- a/src/Model/AnimeCollection.php +++ b/src/Model/AnimeCollection.php @@ -28,7 +28,7 @@ class AnimeCollection extends Collection { /** * Anime API Model - * @var object $animeModel + * @var Anime $animeModel */ protected $animeModel; @@ -221,7 +221,7 @@ class AnimeCollection extends Collection { private function updateGenre($animeId) { $genreInfo = $this->getGenreData(); - extract($genreInfo); + extract($genreInfo, \EXTR_SKIP); // Get api information $anime = $this->animeModel->getAnimeById($animeId); diff --git a/src/Model/DB.php b/src/Model/DB.php index c4776485..79ec706e 100644 --- a/src/Model/DB.php +++ b/src/Model/DB.php @@ -26,7 +26,7 @@ class DB extends AbstractModel { /** * The query builder object - * @var object $db + * @var \Query\Query_Builder_Interface $db */ protected $db; diff --git a/src/Model/MangaCollection.php b/src/Model/MangaCollection.php index c403cbc9..853c6410 100644 --- a/src/Model/MangaCollection.php +++ b/src/Model/MangaCollection.php @@ -28,7 +28,7 @@ class MangaCollection extends Collection { /** * Manga API Model - * @var object $mangaModel + * @var Manga $mangaModel */ protected $mangaModel; @@ -221,12 +221,12 @@ class MangaCollection extends Collection { private function updateGenre($mangaId) { $genreInfo = $this->getGenreData(); - extract($genreInfo); + extract($genreInfo, EXTR_SKIP); // Get api information $manga = $this->mangaModel->getMangaById($mangaId); - foreach ($anime['genres'] as $genre) + foreach ($manga['genres'] as $genre) { // Add genres that don't currently exist if ( ! in_array($genre, $genres)) diff --git a/tests/API/APIRequestBuilderTest.php b/tests/API/APIRequestBuilderTest.php index 0dffe0dc..a3afc8cc 100644 --- a/tests/API/APIRequestBuilderTest.php +++ b/tests/API/APIRequestBuilderTest.php @@ -116,7 +116,7 @@ class APIRequestBuilderTest extends TestCase { 'foo' => [ 'bar' => 1, 'baz' => [2, 3, 4], - 'bar' => [ + 'bazbar' => [ 'a' => 1, 'b' => 2 ] diff --git a/tests/API/CacheTraitTest.php b/tests/API/CacheTraitTest.php index 75ed7add..7fc03e8f 100644 --- a/tests/API/CacheTraitTest.php +++ b/tests/API/CacheTraitTest.php @@ -20,21 +20,24 @@ use Aviat\AnimeClient\API\CacheTrait; use Aviat\AnimeClient\Tests\AnimeClientTestCase; class CacheTraitTest extends AnimeClientTestCase { + + protected $testClass; + public function setUp() { parent::setUp(); - $this->testClass = new class { - use CacheTrait; + $this->testClass = new class { + use CacheTrait; }; } - + public function testSetGet() { $cachePool = $this->container->get('cache'); $this->testClass->setCache($cachePool); $this->assertEquals($cachePool, $this->testClass->getCache()); } - + public function testGetHashForMethodCall() { $hash = $this->testClass->getHashForMethodCall($this, __METHOD__, []); diff --git a/tests/API/ParallelAPIRequestTest.php b/tests/API/ParallelAPIRequestTest.php index 56943e75..6a529dda 100644 --- a/tests/API/ParallelAPIRequestTest.php +++ b/tests/API/ParallelAPIRequestTest.php @@ -16,32 +16,34 @@ namespace Aviat\AnimeClient\Tests\API; -use Aviat\AnimeClient\API\{APIRequestBuilder, ParallelAPIRequest}; +use Aviat\AnimeClient\API\ParallelAPIRequest; use Aviat\Ion\Friend; use PHPUnit\Framework\TestCase; class ParallelAPIRequestTest extends TestCase { - + public function testAddStringUrlRequest() { $requester = new ParallelAPIRequest(); + $requester->addRequest('https://httpbin.org'); + $friend = new Friend($requester); - $friend->addRequest('https://httpbin.org'); - + $this->assertEquals($friend->requests, ['https://httpbin.org']); } - + public function testAddStringUrlRequests() { $requests = [ 'foo' => 'http://example.com', 'bar' => 'https://example.com' ]; - + $requester = new ParallelAPIRequest(); + $requester->addRequests($requests); + $friend = new Friend($requester); - $friend->addRequests($requests); - + $this->assertEquals($friend->requests, $requests); } } \ No newline at end of file diff --git a/tests/DispatcherTest.php b/tests/DispatcherTest.php index 09d968ff..c67df57b 100644 --- a/tests/DispatcherTest.php +++ b/tests/DispatcherTest.php @@ -180,14 +180,6 @@ class DispatcherTest extends AnimeClientTestCase { 'action' => ['login'], 'verb' => 'get' ], - 'index' => [ - 'path' => '/', - 'action' => ['redirect'], - 'params' => [ - 'url' => '', // Determined by config - 'code' => '301' - ] - ], 'index' => [ 'path' => '/', 'action' => ['redirect'], diff --git a/tests/MenuGeneratorTest.php b/tests/MenuGeneratorTest.php index 9d4ec482..a1e5a82d 100644 --- a/tests/MenuGeneratorTest.php +++ b/tests/MenuGeneratorTest.php @@ -33,7 +33,7 @@ class MenuGeneratorTest extends AnimeClientTestCase { public function testSanity() { $generator = new MenuGenerator($this->container); - $this->assertInstanceOf('Aviat\AnimeClient\MenuGenerator', $generator); + $this->assertInstanceOf(MenuGenerator::class, $generator); } public function testParseConfig() diff --git a/tests/bootstrap.php b/tests/bootstrap.php index 7073357f..27878b14 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -14,8 +14,8 @@ if ($timezone === '' || $timezone === FALSE) // Autoloading // ----------------------------------------------------------------------------- -require __DIR__ . '/AnimeClientTestCase.php'; -require __DIR__ . '/../vendor/autoload.php'; +require_once __DIR__ . '/AnimeClientTestCase.php'; +require_once __DIR__ . '/../vendor/autoload.php'; // ----------------------------------------------------------------------------- // Ini Settings @@ -35,7 +35,7 @@ $_SESSION = []; $_COOKIE = []; // Request base test case and mocks -require __DIR__ . '/TestSessionHandler.php'; -require __DIR__ . '/mocks.php'; +require_once __DIR__ . '/TestSessionHandler.php'; +require_once __DIR__ . '/mocks.php'; // End of bootstrap.php \ No newline at end of file