From 4e4ac58263bcc704b1096eb1913dc3e896f186c9 Mon Sep 17 00:00:00 2001 From: "Timothy J. Warren" Date: Mon, 29 Aug 2016 15:36:36 -0400 Subject: [PATCH] Fix tests broken due to changes in container --- src/Aviat/AnimeClient/Command/BaseCommand.php | 35 +++++++++++++------ .../AnimeClient/Auth/HummingbirdAuthTest.php | 2 +- tests/AnimeClient/ControllerTest.php | 2 +- tests/AnimeClient/DispatcherTest.php | 24 +++---------- tests/AnimeClient/Helper/MenuHelperTest.php | 2 +- tests/AnimeClient/MenuGeneratorTest.php | 2 +- .../Model/AnimeCollectionModelTest.php | 6 ++-- tests/AnimeClient/Model/MangaModelTest.php | 2 +- tests/AnimeClient/UrlGeneratorTest.php | 4 +-- tests/AnimeClient_TestCase.php | 14 ++++++-- 10 files changed, 51 insertions(+), 42 deletions(-) diff --git a/src/Aviat/AnimeClient/Command/BaseCommand.php b/src/Aviat/AnimeClient/Command/BaseCommand.php index bd50731f..923df39a 100644 --- a/src/Aviat/AnimeClient/Command/BaseCommand.php +++ b/src/Aviat/AnimeClient/Command/BaseCommand.php @@ -63,23 +63,38 @@ class BaseCommand extends Command { $container = new Container(); // Create Config Object - $config = new Config($config_array); - $container->set('config', $config); + $container->set('config', function() { + return new Config(); + }); + $container->setInstance('config', $config_array); // Create Cache Object - $container->set('cache', new CacheManager($config)); + $container->set('cache', function($container) { + return new CacheManager($container->get('config')); + }); // Create session Object - $session = (new SessionFactory())->newInstance($_COOKIE); - $container->set('session', $session); + $container->set('session', function() { + return (new SessionFactory())->newInstance($_COOKIE); + }); // Models - $container->set('api-model', new Model\API($container)); - $container->set('anime-model', new Model\Anime($container)); - $container->set('manga-model', new Model\Manga($container)); + $container->set('api-model', function($container) { + return new Model\API($container); + }); + $container->set('anime-model', function($container) { + return new Model\Anime($container); + }); + $container->set('manga-model', function($container) { + return new Model\Manga($container); + }); - $container->set('auth', new HummingbirdAuth($container)); - $container->set('util', new Util($container)); + $container->set('auth', function($container) { + return new HummingbirdAuth($container); + }); + $container->set('util', function($container) { + return new Util($container); + }); return $container; }; diff --git a/tests/AnimeClient/Auth/HummingbirdAuthTest.php b/tests/AnimeClient/Auth/HummingbirdAuthTest.php index db9ea932..d2476127 100644 --- a/tests/AnimeClient/Auth/HummingbirdAuthTest.php +++ b/tests/AnimeClient/Auth/HummingbirdAuthTest.php @@ -24,7 +24,7 @@ class HummingbirdAuthTest extends AnimeClient_TestCase { $auth = new HummingbirdAuth($this->container); $friend = new Friend($auth); $this->auth = $friend; - $this->container->set('session', self::$session); + $this->container->setInstance('session', self::$session); } public function dataAuthenticate() diff --git a/tests/AnimeClient/ControllerTest.php b/tests/AnimeClient/ControllerTest.php index 6b67f59c..043b587b 100644 --- a/tests/AnimeClient/ControllerTest.php +++ b/tests/AnimeClient/ControllerTest.php @@ -33,7 +33,7 @@ class ControllerTest extends AnimeClient_TestCase { 'database' => '', 'file' => ":memory:" ]); - $this->container->set('config', $config); + $this->container->setInstance('config', $config); $this->assertInstanceOf( 'Aviat\AnimeClient\Controller', diff --git a/tests/AnimeClient/DispatcherTest.php b/tests/AnimeClient/DispatcherTest.php index 4c87a4ce..811e1c6c 100644 --- a/tests/AnimeClient/DispatcherTest.php +++ b/tests/AnimeClient/DispatcherTest.php @@ -29,39 +29,25 @@ class DispatcherTest extends AnimeClient_TestCase { 'SERVER_NAME' => $host ]); - $request = ServerRequestFactory::fromGlobals( - $_SERVER, - $_GET, - $_POST, - $_COOKIE, - $_FILES - ); - - $old_config = $this->container->get('config'); + $this->setSuperGlobals([ + '_SERVER' => $_SERVER + ]); $logger = new Logger('test_logger'); $logger->pushHandler(new TestHandler(Logger::DEBUG)); - // Add the appropriate objects to the container - $this->container = new Container([ - 'config' => $old_config, - 'request' => $request, - 'response' => new Response, - 'aura-router' => new RouterContainer - ]); - $this->container->setLogger($logger, 'default'); if ( ! empty($config)) { $config = new Config($config); - $this->container->set('config', $config); + $this->container->setInstance('config', $config); } $this->router = new Dispatcher($this->container); $this->config = $this->container->get('config'); $this->urlGenerator = new UrlGenerator($this->container); - $this->container->set('url-generator', $this->urlGenerator); + $this->container->setInstance('url-generator', $this->urlGenerator); } public function testRouterSanity() diff --git a/tests/AnimeClient/Helper/MenuHelperTest.php b/tests/AnimeClient/Helper/MenuHelperTest.php index d9ec76f4..38740428 100644 --- a/tests/AnimeClient/Helper/MenuHelperTest.php +++ b/tests/AnimeClient/Helper/MenuHelperTest.php @@ -43,7 +43,7 @@ class MenuHelperTest extends AnimeClient_TestCase { // Set config for tests $config = $this->container->get('config'); $config->set('menus', $menus); - $this->container->set('config', $config); + $this->container->setInstance('config', $config); foreach($menus as $case => $config) { diff --git a/tests/AnimeClient/MenuGeneratorTest.php b/tests/AnimeClient/MenuGeneratorTest.php index 2bb1b265..5906aaec 100644 --- a/tests/AnimeClient/MenuGeneratorTest.php +++ b/tests/AnimeClient/MenuGeneratorTest.php @@ -66,7 +66,7 @@ class MenuGeneratorTest extends AnimeClient_TestCase { ]; $config = $this->container->get('config'); $config->set('menus', $menus); - $this->container->set('config', $config); + $this->container->setInstance('config', $config); $expected = ''; $this->assertEquals($expected, $this->generator->generate('manga_list')); diff --git a/tests/AnimeClient/Model/AnimeCollectionModelTest.php b/tests/AnimeClient/Model/AnimeCollectionModelTest.php index 5c931c15..faa66244 100644 --- a/tests/AnimeClient/Model/AnimeCollectionModelTest.php +++ b/tests/AnimeClient/Model/AnimeCollectionModelTest.php @@ -10,7 +10,7 @@ class AnimeCollectionModelTest extends AnimeClient_TestCase { public function setUp() { parent::setUp(); - $this->container->set('config', new Config([ + $this->container->setInstance('config', new Config([ 'database' => [ 'collection' => [ 'type' => 'sqlite', @@ -37,7 +37,7 @@ class AnimeCollectionModelTest extends AnimeClient_TestCase { public function testInvalidDatabase() { - $this->container->set('config', new Config([ + $this->container->setInstance('config', new Config([ 'database' => [ 'collection' => [ 'type' => 'sqlite', @@ -57,7 +57,7 @@ class AnimeCollectionModelTest extends AnimeClient_TestCase { public function testNonExistentDatabase() { - $this->container->set('config', new Config([ + $this->container->setInstance('config', new Config([ 'database' => [ 'collection' => [ 'type' => 'sqlite', diff --git a/tests/AnimeClient/Model/MangaModelTest.php b/tests/AnimeClient/Model/MangaModelTest.php index bc97fca7..9eca4ca0 100644 --- a/tests/AnimeClient/Model/MangaModelTest.php +++ b/tests/AnimeClient/Model/MangaModelTest.php @@ -12,7 +12,7 @@ class MangaModelTest extends AnimeClient_TestCase { public function setUp() { parent::setUp(); - $this->container->set('util', new MockUtil($this->container)); + $this->container->setInstance('util', new MockUtil($this->container)); $this->model = new Friend(new TestMangaModel($this->container)); $this->mockDir = __DIR__ . '/../../test_data/manga_list'; } diff --git a/tests/AnimeClient/UrlGeneratorTest.php b/tests/AnimeClient/UrlGeneratorTest.php index aea2e044..7ae7e07d 100644 --- a/tests/AnimeClient/UrlGeneratorTest.php +++ b/tests/AnimeClient/UrlGeneratorTest.php @@ -83,7 +83,7 @@ class UrlGeneratorTest extends AnimeClient_TestCase { public function testFullUrl($config, $path, $type, $expected) { $config = new Config($config); - $this->container->set('config', $config); + $this->container->setInstance('config', $config); $urlGenerator = new UrlGenerator($this->container); $result = $urlGenerator->full_url($path, $type); @@ -127,7 +127,7 @@ class UrlGeneratorTest extends AnimeClient_TestCase { public function testBaseUrl($config, $type, $expected) { $config = new Config($config); - $this->container->set('config', $config); + $this->container->setInstance('config', $config); $urlGenerator = new UrlGenerator($this->container); $result = $urlGenerator->base_url($type); diff --git a/tests/AnimeClient_TestCase.php b/tests/AnimeClient_TestCase.php index 6b32e3ba..9f1f7865 100644 --- a/tests/AnimeClient_TestCase.php +++ b/tests/AnimeClient_TestCase.php @@ -91,7 +91,13 @@ class AnimeClient_TestCase extends PHPUnit_Framework_TestCase { // Set up DI container $di = require _dir($APP_DIR, 'bootstrap.php'); $container = $di($config_array); - $container->set('session-handler', self::$session_handler); + + // Use mock session handler + $container->set('session-handler', function() { + $session_handler = new TestSessionHandler(); + session_set_save_handler($session_handler, TRUE); + return $session_handler; + }); $this->container = $container; } @@ -116,8 +122,10 @@ class AnimeClient_TestCase extends PHPUnit_Framework_TestCase { ['Zend\Diactoros\ServerRequestFactory', 'fromGlobals'], array_merge($default, $supers) ); - $this->container->set('request', $request); - $this->container->set('response', new HttpResponse()); + $this->container->setInstance('request', $request); + $this->container->set('repsone', function() { + return new HttpResponse(); + }); } /**