]> git.immae.eu Git - github/shaarli/Shaarli.git/blob - tests/container/ContainerBuilderTest.php
3d43c34470d098dd69a18e5a78c874187c0ca83d
[github/shaarli/Shaarli.git] / tests / container / ContainerBuilderTest.php
1 <?php
2
3 declare(strict_types=1);
4
5 namespace Shaarli\Container;
6
7 use Psr\Log\LoggerInterface;
8 use Shaarli\Bookmark\BookmarkServiceInterface;
9 use Shaarli\Config\ConfigManager;
10 use Shaarli\Feed\FeedBuilder;
11 use Shaarli\Formatter\FormatterFactory;
12 use Shaarli\Front\Controller\Visitor\ErrorController;
13 use Shaarli\Front\Controller\Visitor\ErrorNotFoundController;
14 use Shaarli\History;
15 use Shaarli\Http\HttpAccess;
16 use Shaarli\Http\MetadataRetriever;
17 use Shaarli\Netscape\NetscapeBookmarkUtils;
18 use Shaarli\Plugin\PluginManager;
19 use Shaarli\Render\PageBuilder;
20 use Shaarli\Render\PageCacheManager;
21 use Shaarli\Security\CookieManager;
22 use Shaarli\Security\LoginManager;
23 use Shaarli\Security\SessionManager;
24 use Shaarli\TestCase;
25 use Shaarli\Thumbnailer;
26 use Shaarli\Updater\Updater;
27 use Slim\Http\Environment;
28
29 class 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
43 /** @var CookieManager */
44 protected $cookieManager;
45
46 public function setUp(): void
47 {
48 $this->conf = new ConfigManager('tests/utils/config/configJson');
49 $this->sessionManager = $this->createMock(SessionManager::class);
50 $this->cookieManager = $this->createMock(CookieManager::class);
51
52 $this->loginManager = $this->createMock(LoginManager::class);
53 $this->loginManager->method('isLoggedIn')->willReturn(true);
54
55 $this->containerBuilder = new ContainerBuilder(
56 $this->conf,
57 $this->sessionManager,
58 $this->cookieManager,
59 $this->loginManager,
60 $this->createMock(LoggerInterface::class)
61 );
62 }
63
64 public function testBuildContainer(): void
65 {
66 $container = $this->containerBuilder->build();
67
68 static::assertInstanceOf(BookmarkServiceInterface::class, $container->bookmarkService);
69 static::assertInstanceOf(CookieManager::class, $container->cookieManager);
70 static::assertInstanceOf(ConfigManager::class, $container->conf);
71 static::assertInstanceOf(ErrorController::class, $container->errorHandler);
72 static::assertInstanceOf(Environment::class, $container->environment);
73 static::assertInstanceOf(FeedBuilder::class, $container->feedBuilder);
74 static::assertInstanceOf(FormatterFactory::class, $container->formatterFactory);
75 static::assertInstanceOf(History::class, $container->history);
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);
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);
92 }
93 }