mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-10-15 17:59:43 +00:00
99 lines
3.3 KiB
PHP
99 lines
3.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
/*
|
|
* Chill is a software for social workers
|
|
*
|
|
* For the full copyright and license information, please view
|
|
* the LICENSE file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace Chill\MainBundle\Tests\DependencyInjection;
|
|
|
|
use Chill\MainBundle\DependencyInjection\Configuration;
|
|
use PHPUnit\Framework\TestCase;
|
|
use Symfony\Component\Config\Definition\Processor;
|
|
use Symfony\Component\DependencyInjection\ContainerBuilder;
|
|
|
|
/**
|
|
* @internal
|
|
*
|
|
* @coversNothing
|
|
*/
|
|
class ConfigurationTest extends TestCase
|
|
{
|
|
public function testTopBannerConfiguration(): void
|
|
{
|
|
$containerBuilder = new ContainerBuilder();
|
|
$configuration = new Configuration([], $containerBuilder);
|
|
$processor = new Processor();
|
|
|
|
// Test with top_banner configuration
|
|
$config = [
|
|
'chill_main' => [
|
|
'top_banner' => [
|
|
'text' => [
|
|
'fr' => 'Vous travaillez actuellement avec la version de pré-production de Chill.',
|
|
'nl' => 'Je werkte momenteel in de pré-productie versie van Chill.',
|
|
],
|
|
'color' => 'white',
|
|
'background-color' => 'red',
|
|
],
|
|
],
|
|
];
|
|
|
|
$processedConfig = $processor->processConfiguration($configuration, $config);
|
|
|
|
self::assertArrayHasKey('top_banner', $processedConfig);
|
|
self::assertArrayHasKey('text', $processedConfig['top_banner']);
|
|
self::assertArrayHasKey('fr', $processedConfig['top_banner']['text']);
|
|
self::assertArrayHasKey('nl', $processedConfig['top_banner']['text']);
|
|
self::assertSame('white', $processedConfig['top_banner']['color']);
|
|
self::assertSame('red', $processedConfig['top_banner']['background_color']);
|
|
}
|
|
|
|
public function testTopBannerConfigurationOptional(): void
|
|
{
|
|
$containerBuilder = new ContainerBuilder();
|
|
$configuration = new Configuration([], $containerBuilder);
|
|
$processor = new Processor();
|
|
|
|
// Test without top_banner configuration
|
|
$config = [
|
|
'chill_main' => [],
|
|
];
|
|
|
|
$processedConfig = $processor->processConfiguration($configuration, $config);
|
|
|
|
// top_banner should not be present when not configured
|
|
self::assertArrayNotHasKey('top_banner', $processedConfig);
|
|
}
|
|
|
|
public function testTopBannerWithMinimalConfiguration(): void
|
|
{
|
|
$containerBuilder = new ContainerBuilder();
|
|
$configuration = new Configuration([], $containerBuilder);
|
|
$processor = new Processor();
|
|
|
|
// Test with minimal top_banner configuration (only text)
|
|
$config = [
|
|
'chill_main' => [
|
|
'top_banner' => [
|
|
'text' => [
|
|
'fr' => 'Test message',
|
|
],
|
|
],
|
|
],
|
|
];
|
|
|
|
$processedConfig = $processor->processConfiguration($configuration, $config);
|
|
|
|
self::assertArrayHasKey('top_banner', $processedConfig);
|
|
self::assertArrayHasKey('text', $processedConfig['top_banner']);
|
|
self::assertSame('Test message', $processedConfig['top_banner']['text']['fr']);
|
|
self::assertNull($processedConfig['top_banner']['color']);
|
|
self::assertNull($processedConfig['top_banner']['background_color']);
|
|
}
|
|
}
|