]> git.immae.eu Git - github/shaarli/Shaarli.git/blame - tests/container/ContainerBuilderTest.php
Plugin system: allow plugins to provide custom routes
[github/shaarli/Shaarli.git] / tests / container / ContainerBuilderTest.php
CommitLineData
6c50a6cc
A
1<?php
2
3declare(strict_types=1);
4
5namespace Shaarli\Container;
6
b38a1b02 7use Psr\Log\LoggerInterface;
6c50a6cc
A
8use Shaarli\Bookmark\BookmarkServiceInterface;
9use Shaarli\Config\ConfigManager;
9c75f877 10use Shaarli\Feed\FeedBuilder;
485b168a 11use Shaarli\Formatter\FormatterFactory;
7e3dc0ba 12use Shaarli\Front\Controller\Visitor\ErrorController;
d52ab0b1 13use Shaarli\Front\Controller\Visitor\ErrorNotFoundController;
6c50a6cc 14use Shaarli\History;
9c75f877 15use Shaarli\Http\HttpAccess;
4cf3564d 16use Shaarli\Http\MetadataRetriever;
c4ad3d4f 17use Shaarli\Netscape\NetscapeBookmarkUtils;
9c75f877 18use Shaarli\Plugin\PluginManager;
6c50a6cc 19use Shaarli\Render\PageBuilder;
8e47af2b 20use Shaarli\Render\PageCacheManager;
c4ad3d4f 21use Shaarli\Security\CookieManager;
6c50a6cc
A
22use Shaarli\Security\LoginManager;
23use Shaarli\Security\SessionManager;
a5a9cf23 24use Shaarli\TestCase;
9c75f877 25use Shaarli\Thumbnailer;
c4ad3d4f 26use Shaarli\Updater\Updater;
7e3dc0ba 27use Slim\Http\Environment;
6c50a6cc
A
28
29class ContainerBuilderTest extends TestCase
30{
31 /** @var ConfigManager */
32 protected $conf;
33
34 /** @var SessionManager */
35 protected $sessionManager;
36
37 /** @var LoginManager */
38 protected $loginManager;
39
40 /** @var ContainerBuilder */
41 protected $containerBuilder;
42
c4ad3d4f
A
43 /** @var CookieManager */
44 protected $cookieManager;
45
a6e9c084
A
46 /** @var PluginManager */
47 protected $pluginManager;
48
6c50a6cc
A
49 public function setUp(): void
50 {
51 $this->conf = new ConfigManager('tests/utils/config/configJson');
52 $this->sessionManager = $this->createMock(SessionManager::class);
c4ad3d4f 53 $this->cookieManager = $this->createMock(CookieManager::class);
a6e9c084 54 $this->pluginManager = $this->createMock(PluginManager::class);
485b168a 55
6c50a6cc 56 $this->loginManager = $this->createMock(LoginManager::class);
485b168a 57 $this->loginManager->method('isLoggedIn')->willReturn(true);
6c50a6cc 58
8e47af2b
A
59 $this->containerBuilder = new ContainerBuilder(
60 $this->conf,
61 $this->sessionManager,
c4ad3d4f 62 $this->cookieManager,
b38a1b02 63 $this->loginManager,
a6e9c084 64 $this->pluginManager,
b38a1b02 65 $this->createMock(LoggerInterface::class)
8e47af2b 66 );
6c50a6cc
A
67 }
68
69 public function testBuildContainer(): void
70 {
71 $container = $this->containerBuilder->build();
72
7e3dc0ba 73 static::assertInstanceOf(BookmarkServiceInterface::class, $container->bookmarkService);
c4ad3d4f 74 static::assertInstanceOf(CookieManager::class, $container->cookieManager);
7e3dc0ba
A
75 static::assertInstanceOf(ConfigManager::class, $container->conf);
76 static::assertInstanceOf(ErrorController::class, $container->errorHandler);
77 static::assertInstanceOf(Environment::class, $container->environment);
78 static::assertInstanceOf(FeedBuilder::class, $container->feedBuilder);
79 static::assertInstanceOf(FormatterFactory::class, $container->formatterFactory);
6c50a6cc 80 static::assertInstanceOf(History::class, $container->history);
7e3dc0ba
A
81 static::assertInstanceOf(HttpAccess::class, $container->httpAccess);
82 static::assertInstanceOf(LoginManager::class, $container->loginManager);
b38a1b02 83 static::assertInstanceOf(LoggerInterface::class, $container->logger);
4cf3564d 84 static::assertInstanceOf(MetadataRetriever::class, $container->metadataRetriever);
7e3dc0ba 85 static::assertInstanceOf(NetscapeBookmarkUtils::class, $container->netscapeBookmarkUtils);
6c50a6cc 86 static::assertInstanceOf(PageBuilder::class, $container->pageBuilder);
8e47af2b 87 static::assertInstanceOf(PageCacheManager::class, $container->pageCacheManager);
7e3dc0ba 88 static::assertInstanceOf(ErrorController::class, $container->phpErrorHandler);
d52ab0b1 89 static::assertInstanceOf(ErrorNotFoundController::class, $container->notFoundHandler);
7e3dc0ba
A
90 static::assertInstanceOf(PluginManager::class, $container->pluginManager);
91 static::assertInstanceOf(SessionManager::class, $container->sessionManager);
9c75f877 92 static::assertInstanceOf(Thumbnailer::class, $container->thumbnailer);
c4ad3d4f 93 static::assertInstanceOf(Updater::class, $container->updater);
9c75f877
A
94
95 // Set by the middleware
96 static::assertNull($container->basePath);
6c50a6cc
A
97 }
98}