formatEvent($event, $this->pattern1); $expected = "INFO TEST: valueofkey1 Test message"; self::assertEquals($expected, $actual); // Pattern with 2 keys $actual = $this->formatEvent($event, $this->pattern2); $expected = "INFO TEST: valueofkey1 valueofkey2 Test message"; self::assertEquals($expected, $actual); // Pattern with 3 keys (one numeric) $actual = $this->formatEvent($event, $this->pattern3); $expected = "INFO TEST: valueofkey1 valueofkey2 valueofkey3 Test message"; self::assertEquals($expected, $actual); // Pattern with non-existant key $actual = $this->formatEvent($event, $this->pattern4); $expected = "INFO TEST: Test message"; self::assertEquals($expected, $actual); // Pattern with an empty key $actual = $this->formatEvent($event, $this->pattern5); $expected = "INFO TEST: Test message"; self::assertEquals($expected, $actual); // Test key removal LoggerMDC::remove('key1'); $value = LoggerMDC::get('key1'); self::assertEquals('', $value); // Pattern with 1 key, now removed $actual = $this->formatEvent($event, $this->pattern1); $expected = "INFO TEST: Test message"; self::assertEquals($expected, $actual); } public function testEnvKey() { // Set an environment variable for testing if (putenv('TEST=abc') === false) { self::markTestSkipped("Unable to set environment variable for testing."); } // Test reading of the set variable self::assertEquals('abc', LoggerMDC::get('env.TEST')); // Test env variable in a pattern $event = new LoggerLoggingEvent("LoggerLayoutPattern", new Logger("TEST"), LoggerLevel::getLevelInfo(), "Test message"); $actual = $this->formatEvent($event, $this->patternEnv); $expected = "INFO TEST: abc Test message"; self::assertEquals($expected, $actual); // Test reading a non-existant env variable self::assertEquals('', LoggerMDC::get('env.hopefully_this_variable_doesnt_exist')); // Test reading an empty env variable self::assertEquals('', LoggerMDC::get('env.')); } public function testServerKey() { // Test reading a server variable $value = $_SERVER['PHP_SELF']; self::assertEquals($value, LoggerMDC::get('server.PHP_SELF')); // Test the server variable in a pattern $event = new LoggerLoggingEvent("LoggerLayoutPattern", new Logger("TEST"), LoggerLevel::getLevelInfo(), "Test message"); $actual = $this->formatEvent($event, $this->patternServer); $expected = "INFO TEST: $value Test message"; self::assertEquals($expected, $actual); // Test reading a non-existant server variable self::assertEquals('', LoggerMDC::get('server.hopefully_this_variable_doesnt_exist')); // Test reading an empty server variable self::assertEquals('', LoggerMDC::get('server.')); } private function formatEvent($event, $pattern) { $layout = new LoggerLayoutPattern(); $layout->setConversionPattern($pattern); return $layout->format($event); } } ?>