mirror of
https://gitlab.com/Chill-Projet/chill-bundles.git
synced 2025-10-08 14:29:42 +00:00
Create test for environment banner config
This commit is contained in:
@@ -0,0 +1,84 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
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']);
|
||||||
|
}
|
||||||
|
}
|
Reference in New Issue
Block a user