]> git.mxchange.org Git - friendica.git/commitdiff
Fix tests for StrategiesFileManager
authorArt4 <art4@wlabs.de>
Fri, 16 May 2025 07:12:08 +0000 (07:12 +0000)
committerArt4 <art4@wlabs.de>
Fri, 16 May 2025 07:12:08 +0000 (07:12 +0000)
tests/src/Core/Hooks/Util/StrategiesFileManagerTest.php

index 633b636701ad8ce3998012ef583d9133ecd555b6..f06e0b09e9af55371d6b16463cc9bf684cf7134f 100644 (file)
@@ -8,6 +8,7 @@
 namespace Friendica\Test\src\Core\Hooks\Util;
 
 use Friendica\Core\Addon\Capability\ICanLoadAddons;
+use Friendica\Core\Config\Capability\IManageConfigValues;
 use Friendica\Core\Hooks\Capability\ICanRegisterStrategies;
 use Friendica\Core\Hooks\Exceptions\HookConfigException;
 use Friendica\Core\Hooks\Util\StrategiesFileManager;
@@ -33,49 +34,61 @@ class StrategiesFileManagerTest extends MockedTestCase
                return [
                        'normal' => [
                                'content' => <<<EOF
-<?php
-
-return [
-               \Psr\Log\LoggerInterface::class => [
-                       \Psr\Log\NullLogger::class => [''],
-               ],
-];
-EOF,
-                               'addonsArray'      => [],
+                                       <?php
+
+                                       return [
+                                               \Psr\Log\LoggerInterface::class => [
+                                                       \Psr\Log\NullLogger::class => [''],
+                                               ],
+                                       ];
+                                       EOF,
+                               'addonContent' => <<<EOF
+                                       <?php
+
+                                       return [];
+                                       EOF,
                                'assertStrategies' => [
                                        [LoggerInterface::class, NullLogger::class, ''],
                                ],
                        ],
                        'normalWithString' => [
                                'content' => <<<EOF
-<?php
-
-return [
-               \Psr\Log\LoggerInterface::class => [
-                       \Psr\Log\NullLogger::class => '',
-               ],
-];
-EOF,
-                               'addonsArray'      => [],
+                                       <?php
+
+                                       return [
+                                               \Psr\Log\LoggerInterface::class => [
+                                                       \Psr\Log\NullLogger::class => '',
+                                               ],
+                                       ];
+                                       EOF,
+                               'addonContent' => <<<EOF
+                                       <?php
+
+                                       return [];
+                                       EOF,
                                'assertStrategies' => [
                                        [LoggerInterface::class, NullLogger::class, ''],
                                ],
                        ],
                        'withAddons' => [
                                'content' => <<<EOF
-<?php
-
-return [
-               \Psr\Log\LoggerInterface::class => [
-                       \Psr\Log\NullLogger::class => [''],
-               ],
-];
-EOF,
-                               'addonsArray' => [
-                                       \Psr\Log\LoggerInterface::class => [
-                                               \Psr\Log\NullLogger::class => ['null'],
-                                       ],
-                               ],
+                                       <?php
+
+                                       return [
+                                               \Psr\Log\LoggerInterface::class => [
+                                                       \Psr\Log\NullLogger::class => [''],
+                                               ],
+                                       ];
+                                       EOF,
+                               'addonContent' => <<<EOF
+                                       <?php
+
+                                       return [
+                                               \Psr\Log\LoggerInterface::class => [
+                                                       \Psr\Log\NullLogger::class => ['null'],
+                                               ],
+                                       ];
+                                       EOF,
                                'assertStrategies' => [
                                        [LoggerInterface::class, NullLogger::class, ''],
                                        [LoggerInterface::class, NullLogger::class, 'null'],
@@ -83,19 +96,23 @@ EOF,
                        ],
                        'withAddonsWithString' => [
                                'content' => <<<EOF
-<?php
-
-return [
-               \Psr\Log\LoggerInterface::class => [
-                       \Psr\Log\NullLogger::class => [''],
-               ],
-];
-EOF,
-                               'addonsArray' => [
-                                       \Psr\Log\LoggerInterface::class => [
-                                               \Psr\Log\NullLogger::class => 'null',
-                                       ],
-                               ],
+                                       <?php
+
+                                       return [
+                                                       \Psr\Log\LoggerInterface::class => [
+                                                               \Psr\Log\NullLogger::class => [''],
+                                                       ],
+                                       ];
+                                       EOF,
+                               'addonContent' => <<<EOF
+                                       <?php
+
+                                       return [
+                                                       \Psr\Log\LoggerInterface::class => [
+                                                               \Psr\Log\NullLogger::class => ['null'],
+                                                       ],
+                                       ];
+                                       EOF,
                                'assertStrategies' => [
                                        [LoggerInterface::class, NullLogger::class, ''],
                                        [LoggerInterface::class, NullLogger::class, 'null'],
@@ -104,19 +121,23 @@ EOF,
                        // This should work because unique name convention is part of the instance manager logic, not of the file-infrastructure layer
                        'withAddonsDoubleNamed' => [
                                'content' => <<<EOF
-<?php
-
-return [
-               \Psr\Log\LoggerInterface::class => [
-                       \Psr\Log\NullLogger::class => [''],
-               ],
-];
-EOF,
-                               'addonsArray' => [
-                                       \Psr\Log\LoggerInterface::class => [
-                                               \Psr\Log\NullLogger::class => [''],
-                                       ],
-                               ],
+                                       <?php
+
+                                       return [
+                                               \Psr\Log\LoggerInterface::class => [
+                                                       \Psr\Log\NullLogger::class => [''],
+                                               ],
+                                       ];
+                                       EOF,
+                               'addonContent' => <<<EOF
+                                       <?php
+
+                                       return [
+                                               \Psr\Log\LoggerInterface::class => [
+                                                       \Psr\Log\NullLogger::class => [''],
+                                               ],
+                                       ];
+                                       EOF,
                                'assertStrategies' => [
                                        [LoggerInterface::class, NullLogger::class, ''],
                                        [LoggerInterface::class, NullLogger::class, ''],
@@ -128,16 +149,20 @@ EOF,
        /**
         * @dataProvider dataHooks
         */
-       public function testSetupHooks(string $content, array $addonsArray, array $assertStrategies)
+       public function testSetupHooks(string $content, string $addonContent, array $assertStrategies)
        {
                vfsStream::newFile(StrategiesFileManager::STATIC_DIR . '/' . StrategiesFileManager::CONFIG_NAME . '.config.php')
                        ->withContent($content)
                        ->at($this->root);
 
-               $addonLoader = \Mockery::mock(ICanLoadAddons::class);
-               $addonLoader->shouldReceive('getActiveAddonConfig')->andReturn($addonsArray)->once();
+               vfsStream::newFile('addon/testaddon/' . StrategiesFileManager::STATIC_DIR . '/' . StrategiesFileManager::CONFIG_NAME . '.config.php')
+                       ->withContent($addonContent)
+                       ->at($this->root);
+
+               $config = \Mockery::mock(IManageConfigValues::class);
+               $config->shouldReceive('get')->andReturn(['testaddon' => ['admin' => false]])->once();
 
-               $hookFileManager = new StrategiesFileManager($this->root->url(), $addonLoader);
+               $hookFileManager = new StrategiesFileManager($this->root->url(), $config);
 
                $instanceManager = \Mockery::mock(ICanRegisterStrategies::class);
                foreach ($assertStrategies as $assertStrategy) {
@@ -155,9 +180,9 @@ EOF,
         */
        public function testMissingStrategiesFile()
        {
-               $addonLoader     = \Mockery::mock(ICanLoadAddons::class);
+               $config          = \Mockery::mock(IManageConfigValues::class);
                $instanceManager = \Mockery::mock(ICanRegisterStrategies::class);
-               $hookFileManager = new StrategiesFileManager($this->root->url(), $addonLoader);
+               $hookFileManager = new StrategiesFileManager($this->root->url(), $config);
 
                self::expectException(HookConfigException::class);
                self::expectExceptionMessage(sprintf('config file %s does not exist.',
@@ -171,9 +196,9 @@ EOF,
         */
        public function testWrongStrategiesFile()
        {
-               $addonLoader     = \Mockery::mock(ICanLoadAddons::class);
+               $config          = \Mockery::mock(IManageConfigValues::class);
                $instanceManager = \Mockery::mock(ICanRegisterStrategies::class);
-               $hookFileManager = new StrategiesFileManager($this->root->url(), $addonLoader);
+               $hookFileManager = new StrategiesFileManager($this->root->url(), $config);
 
                vfsStream::newFile(StrategiesFileManager::STATIC_DIR . '/' . StrategiesFileManager::CONFIG_NAME . '.config.php')
                                 ->withContent("<?php return 'WRONG_CONTENT';")