[ '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']); } }