Index: src/test/php/LoggerMDCTest.php =================================================================== --- src/test/php/LoggerMDCTest.php (revision 0) +++ src/test/php/LoggerMDCTest.php (revision 0) @@ -0,0 +1,146 @@ +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); + } +} + +?>