3 declare(strict_types
=1);
5 namespace Shaarli\Container
;
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
;
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
;
25 use Shaarli\Thumbnailer
;
26 use Shaarli\Updater\Updater
;
27 use Slim\Http\Environment
;
29 class ContainerBuilderTest
extends TestCase
31 /** @var ConfigManager */
34 /** @var SessionManager */
35 protected $sessionManager;
37 /** @var LoginManager */
38 protected $loginManager;
40 /** @var ContainerBuilder */
41 protected $containerBuilder;
43 /** @var CookieManager */
44 protected $cookieManager;
46 /** @var PluginManager */
47 protected $pluginManager;
49 public function setUp(): void
51 $this->conf
= new ConfigManager('tests/utils/config/configJson');
52 $this->sessionManager
= $this->createMock(SessionManager
::class);
53 $this->cookieManager
= $this->createMock(CookieManager
::class);
54 $this->pluginManager
= $this->createMock(PluginManager
::class);
56 $this->loginManager
= $this->createMock(LoginManager
::class);
57 $this->loginManager
->method('isLoggedIn')->willReturn(true);
59 $this->containerBuilder
= new ContainerBuilder(
61 $this->sessionManager
,
65 $this->createMock(LoggerInterface
::class)
69 public function testBuildContainer(): void
71 $container = $this->containerBuilder
->build();
73 static::assertInstanceOf(BookmarkServiceInterface
::class, $container->bookmarkService
);
74 static::assertInstanceOf(CookieManager
::class, $container->cookieManager
);
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
);
80 static::assertInstanceOf(History
::class, $container->history
);
81 static::assertInstanceOf(HttpAccess
::class, $container->httpAccess
);
82 static::assertInstanceOf(LoginManager
::class, $container->loginManager
);
83 static::assertInstanceOf(LoggerInterface
::class, $container->logger
);
84 static::assertInstanceOf(MetadataRetriever
::class, $container->metadataRetriever
);
85 static::assertInstanceOf(NetscapeBookmarkUtils
::class, $container->netscapeBookmarkUtils
);
86 static::assertInstanceOf(PageBuilder
::class, $container->pageBuilder
);
87 static::assertInstanceOf(PageCacheManager
::class, $container->pageCacheManager
);
88 static::assertInstanceOf(ErrorController
::class, $container->phpErrorHandler
);
89 static::assertInstanceOf(ErrorNotFoundController
::class, $container->notFoundHandler
);
90 static::assertInstanceOf(PluginManager
::class, $container->pluginManager
);
91 static::assertInstanceOf(SessionManager
::class, $container->sessionManager
);
92 static::assertInstanceOf(Thumbnailer
::class, $container->thumbnailer
);
93 static::assertInstanceOf(Updater
::class, $container->updater
);
95 // Set by the middleware
96 static::assertNull($container->basePath
);