diff --git a/src/Bundle/ChillMainBundle/Tests/DependencyInjection/ConfigurationTest.php b/src/Bundle/ChillMainBundle/Tests/DependencyInjection/ConfigurationTest.php new file mode 100644 index 000000000..7f4baa119 --- /dev/null +++ b/src/Bundle/ChillMainBundle/Tests/DependencyInjection/ConfigurationTest.php @@ -0,0 +1,84 @@ + [ + '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']); + } +}