Skip to content

Commit 1cdf839

Browse files
committed
Тесты
1 parent 1fa0be5 commit 1cdf839

File tree

2 files changed

+128
-4
lines changed

2 files changed

+128
-4
lines changed

src/Utils/Loaders/PhpLoaderSettingsBitrix.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ public function load($resource, string $type = null)
3636
}, $this, ProtectedPhpFileLoader::class);
3737

3838
try {
39-
$callback = $load($path, $this->env);
40-
if (is_array($callback)) {
39+
$settings = $load($path, $this->env);
40+
if (is_array($settings)) {
4141
$adapter = new BitrixSettingsDiAdapter();
42-
$adapter->importServices($container, $callback);
42+
$adapter->importServices($container, $settings);
4343
}
4444
} finally {
4545
$this->instanceof = [];
@@ -78,9 +78,9 @@ public function loadBitrixConfig(string $key, bool $loadModulesServices = true)
7878
{
7979
$mainBitrixServices = Configuration::getInstance()->get($key) ?? [];
8080

81-
// Собрать конфиги всех установленных модулей.
8281
$servicesModules = [];
8382

83+
// Собрать конфиги всех установленных модулей.
8484
if ($loadModulesServices) {
8585
foreach (ModuleManager::getInstalledModules() as $module) {
8686
$services = Configuration::getInstance($module['ID'])->get($key) ?? [];
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
<?php
2+
3+
namespace Prokl\ServiceProvider\Tests\Cases;
4+
5+
use Exception;
6+
use Prokl\BitrixTestingTools\Base\BitrixableTestCase;
7+
use Prokl\ServiceProvider\ServiceProvider;
8+
use Prokl\ServiceProvider\Services\AppKernel;
9+
use Prokl\ServiceProvider\Utils\Loaders\PhpLoaderSettingsBitrix;
10+
use Symfony\Component\DependencyInjection\ContainerBuilder;
11+
use Symfony\Component\HttpKernel\Config\FileLocator;
12+
13+
/**
14+
* Class PhpLoaderSettingsBitrixTest
15+
* @package Prokl\ServiceProvider\Tests\Cases
16+
*
17+
* @since 13.07.2021
18+
*/
19+
class PhpLoaderSettingsBitrixTest extends BitrixableTestCase
20+
{
21+
/**
22+
* @var PhpLoaderSettingsBitrix $obTestObject
23+
*/
24+
protected $obTestObject;
25+
26+
/**
27+
* @var ContainerBuilder $dummyContainer
28+
*/
29+
private $dummyContainer;
30+
31+
/**
32+
* @var AppKernel
33+
*/
34+
private $kernel;
35+
36+
/**
37+
* @var string $pathYamlConfig Путь к конфигу.
38+
*/
39+
private $fixture = '/../../../../tests/Fixtures/Settings';
40+
41+
/**
42+
* @var string $pathYamlConfig Путь к конфигу.
43+
*/
44+
private $pathYamlConfig = '../../../../tests/Fixtures/config/test_container.yaml';
45+
46+
/**
47+
* @inheritDoc
48+
* @throws Exception
49+
*/
50+
protected function setUp(): void
51+
{
52+
parent::setUp();
53+
54+
$_ENV['DEBUG'] = true;
55+
$this->container = new ServiceProvider(
56+
$this->pathYamlConfig
57+
);
58+
59+
$this->dummyContainer = $this->container->container();
60+
61+
$this->kernel = $this->dummyContainer->get('kernel');
62+
$locator = new FileLocator($this->kernel);
63+
64+
$this->obTestObject = new PhpLoaderSettingsBitrix(
65+
$this->dummyContainer,
66+
$locator
67+
);
68+
}
69+
70+
/**
71+
* supports().
72+
*
73+
* @param string $file Файл.
74+
*
75+
* @return void
76+
*
77+
* @dataProvider dataProviderValidBitrixConfigFilename
78+
*/
79+
public function testSupports(string $file) : void
80+
{
81+
$result = $this->obTestObject->supports($file);
82+
83+
$this->assertTrue($result, 'Валидный конфиг не прошел проверку.');
84+
}
85+
86+
/**
87+
* @return array
88+
*/
89+
public function dataProviderValidBitrixConfigFilename() : array
90+
{
91+
return [
92+
[$_SERVER['DOCUMENT_ROOT'] . $this->fixture . '/.settings.php'],
93+
[$_SERVER['DOCUMENT_ROOT'] . $this->fixture . '/.settings_extra.php']
94+
];
95+
}
96+
97+
/**
98+
* supports(). Невалидные файлы.
99+
*
100+
* @param string $file Файл.
101+
*
102+
* @return void
103+
*
104+
* @dataProvider dataProviderInvalidBitrixConfigFilename
105+
*/
106+
public function testSupportsInvalid(string $file) : void
107+
{
108+
$result = $this->obTestObject->supports($file);
109+
110+
$this->assertFalse($result, 'Невалидный конфиг прошел проверку.');
111+
}
112+
113+
/**
114+
* @return array
115+
*/
116+
public function dataProviderInvalidBitrixConfigFilename() : array
117+
{
118+
return [
119+
[$_SERVER['DOCUMENT_ROOT'] . $this->fixture . '/.config.php'],
120+
[$_SERVER['DOCUMENT_ROOT'] . $this->fixture . '/.settings.html'],
121+
[$_SERVER['DOCUMENT_ROOT'] . $this->fixture . '/.settings_extra'],
122+
];
123+
}
124+
}

0 commit comments

Comments
 (0)