aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/container
diff options
context:
space:
mode:
Diffstat (limited to 'tests/container')
-rw-r--r--tests/container/ContainerBuilderTest.php54
-rw-r--r--tests/container/ShaarliTestContainer.php42
2 files changed, 91 insertions, 5 deletions
diff --git a/tests/container/ContainerBuilderTest.php b/tests/container/ContainerBuilderTest.php
index 9b97ed6d..3d43c344 100644
--- a/tests/container/ContainerBuilderTest.php
+++ b/tests/container/ContainerBuilderTest.php
@@ -4,13 +4,27 @@ declare(strict_types=1);
4 4
5namespace Shaarli\Container; 5namespace Shaarli\Container;
6 6
7use PHPUnit\Framework\TestCase; 7use Psr\Log\LoggerInterface;
8use Shaarli\Bookmark\BookmarkServiceInterface; 8use Shaarli\Bookmark\BookmarkServiceInterface;
9use Shaarli\Config\ConfigManager; 9use Shaarli\Config\ConfigManager;
10use Shaarli\Feed\FeedBuilder;
11use Shaarli\Formatter\FormatterFactory;
12use Shaarli\Front\Controller\Visitor\ErrorController;
13use Shaarli\Front\Controller\Visitor\ErrorNotFoundController;
10use Shaarli\History; 14use Shaarli\History;
15use Shaarli\Http\HttpAccess;
16use Shaarli\Http\MetadataRetriever;
17use Shaarli\Netscape\NetscapeBookmarkUtils;
18use Shaarli\Plugin\PluginManager;
11use Shaarli\Render\PageBuilder; 19use Shaarli\Render\PageBuilder;
20use Shaarli\Render\PageCacheManager;
21use Shaarli\Security\CookieManager;
12use Shaarli\Security\LoginManager; 22use Shaarli\Security\LoginManager;
13use Shaarli\Security\SessionManager; 23use Shaarli\Security\SessionManager;
24use Shaarli\TestCase;
25use Shaarli\Thumbnailer;
26use Shaarli\Updater\Updater;
27use Slim\Http\Environment;
14 28
15class ContainerBuilderTest extends TestCase 29class ContainerBuilderTest extends TestCase
16{ 30{
@@ -26,24 +40,54 @@ class ContainerBuilderTest extends TestCase
26 /** @var ContainerBuilder */ 40 /** @var ContainerBuilder */
27 protected $containerBuilder; 41 protected $containerBuilder;
28 42
43 /** @var CookieManager */
44 protected $cookieManager;
45
29 public function setUp(): void 46 public function setUp(): void
30 { 47 {
31 $this->conf = new ConfigManager('tests/utils/config/configJson'); 48 $this->conf = new ConfigManager('tests/utils/config/configJson');
32 $this->sessionManager = $this->createMock(SessionManager::class); 49 $this->sessionManager = $this->createMock(SessionManager::class);
50 $this->cookieManager = $this->createMock(CookieManager::class);
51
33 $this->loginManager = $this->createMock(LoginManager::class); 52 $this->loginManager = $this->createMock(LoginManager::class);
53 $this->loginManager->method('isLoggedIn')->willReturn(true);
34 54
35 $this->containerBuilder = new ContainerBuilder($this->conf, $this->sessionManager, $this->loginManager); 55 $this->containerBuilder = new ContainerBuilder(
56 $this->conf,
57 $this->sessionManager,
58 $this->cookieManager,
59 $this->loginManager,
60 $this->createMock(LoggerInterface::class)
61 );
36 } 62 }
37 63
38 public function testBuildContainer(): void 64 public function testBuildContainer(): void
39 { 65 {
40 $container = $this->containerBuilder->build(); 66 $container = $this->containerBuilder->build();
41 67
68 static::assertInstanceOf(BookmarkServiceInterface::class, $container->bookmarkService);
69 static::assertInstanceOf(CookieManager::class, $container->cookieManager);
42 static::assertInstanceOf(ConfigManager::class, $container->conf); 70 static::assertInstanceOf(ConfigManager::class, $container->conf);
43 static::assertInstanceOf(SessionManager::class, $container->sessionManager); 71 static::assertInstanceOf(ErrorController::class, $container->errorHandler);
44 static::assertInstanceOf(LoginManager::class, $container->loginManager); 72 static::assertInstanceOf(Environment::class, $container->environment);
73 static::assertInstanceOf(FeedBuilder::class, $container->feedBuilder);
74 static::assertInstanceOf(FormatterFactory::class, $container->formatterFactory);
45 static::assertInstanceOf(History::class, $container->history); 75 static::assertInstanceOf(History::class, $container->history);
46 static::assertInstanceOf(BookmarkServiceInterface::class, $container->bookmarkService); 76 static::assertInstanceOf(HttpAccess::class, $container->httpAccess);
77 static::assertInstanceOf(LoginManager::class, $container->loginManager);
78 static::assertInstanceOf(LoggerInterface::class, $container->logger);
79 static::assertInstanceOf(MetadataRetriever::class, $container->metadataRetriever);
80 static::assertInstanceOf(NetscapeBookmarkUtils::class, $container->netscapeBookmarkUtils);
47 static::assertInstanceOf(PageBuilder::class, $container->pageBuilder); 81 static::assertInstanceOf(PageBuilder::class, $container->pageBuilder);
82 static::assertInstanceOf(PageCacheManager::class, $container->pageCacheManager);
83 static::assertInstanceOf(ErrorController::class, $container->phpErrorHandler);
84 static::assertInstanceOf(ErrorNotFoundController::class, $container->notFoundHandler);
85 static::assertInstanceOf(PluginManager::class, $container->pluginManager);
86 static::assertInstanceOf(SessionManager::class, $container->sessionManager);
87 static::assertInstanceOf(Thumbnailer::class, $container->thumbnailer);
88 static::assertInstanceOf(Updater::class, $container->updater);
89
90 // Set by the middleware
91 static::assertNull($container->basePath);
48 } 92 }
49} 93}
diff --git a/tests/container/ShaarliTestContainer.php b/tests/container/ShaarliTestContainer.php
new file mode 100644
index 00000000..7dbe914c
--- /dev/null
+++ b/tests/container/ShaarliTestContainer.php
@@ -0,0 +1,42 @@
1<?php
2
3declare(strict_types=1);
4
5namespace Shaarli\Container;
6
7use PHPUnit\Framework\MockObject\MockObject;
8use Shaarli\Bookmark\BookmarkServiceInterface;
9use Shaarli\Config\ConfigManager;
10use Shaarli\Feed\FeedBuilder;
11use Shaarli\Formatter\FormatterFactory;
12use Shaarli\History;
13use Shaarli\Http\HttpAccess;
14use Shaarli\Plugin\PluginManager;
15use Shaarli\Render\PageBuilder;
16use Shaarli\Render\PageCacheManager;
17use Shaarli\Security\LoginManager;
18use Shaarli\Security\SessionManager;
19use Shaarli\Thumbnailer;
20
21/**
22 * Test helper allowing auto-completion for MockObjects.
23 *
24 * @property mixed[] $environment $_SERVER automatically injected by Slim
25 * @property MockObject|ConfigManager $conf
26 * @property MockObject|SessionManager $sessionManager
27 * @property MockObject|LoginManager $loginManager
28 * @property MockObject|string $webPath
29 * @property MockObject|History $history
30 * @property MockObject|BookmarkServiceInterface $bookmarkService
31 * @property MockObject|PageBuilder $pageBuilder
32 * @property MockObject|PluginManager $pluginManager
33 * @property MockObject|FormatterFactory $formatterFactory
34 * @property MockObject|PageCacheManager $pageCacheManager
35 * @property MockObject|FeedBuilder $feedBuilder
36 * @property MockObject|Thumbnailer $thumbnailer
37 * @property MockObject|HttpAccess $httpAccess
38 */
39class ShaarliTestContainer extends ShaarliContainer
40{
41
42}