|
|
@@ -614,4 +614,77 @@ class LoggerTest extends \PHPUnit_Framework_TestCase
|
|
|
$logger->pushHandler($handler);
|
|
|
$logger->info('test');
|
|
|
}
|
|
|
+
|
|
|
+ public function testReset()
|
|
|
+ {
|
|
|
+ $logger = new Logger('app');
|
|
|
+
|
|
|
+ $testHandler = new Handler\TestHandler();
|
|
|
+ $bufferHandler = new Handler\BufferHandler($testHandler);
|
|
|
+ $groupHandler = new Handler\GroupHandler(array($bufferHandler));
|
|
|
+ $fingersCrossedHandler = new Handler\FingersCrossedHandler($groupHandler);
|
|
|
+
|
|
|
+ $logger->pushHandler($fingersCrossedHandler);
|
|
|
+
|
|
|
+ $processorUid1 = new Processor\UidProcessor(10);
|
|
|
+ $uid1 = $processorUid1->getUid();
|
|
|
+ $groupHandler->pushProcessor($processorUid1);
|
|
|
+
|
|
|
+ $processorUid2 = new Processor\UidProcessor(5);
|
|
|
+ $uid2 = $processorUid2->getUid();
|
|
|
+ $logger->pushProcessor($processorUid2);
|
|
|
+
|
|
|
+ $getProperty = function ($object, $property) {
|
|
|
+ $reflectionProperty = new \ReflectionProperty(get_class($object), $property);
|
|
|
+ $reflectionProperty->setAccessible(true);
|
|
|
+
|
|
|
+ return $reflectionProperty->getValue($object);
|
|
|
+ };
|
|
|
+ $that = $this;
|
|
|
+ $assertBufferOfBufferHandlerEmpty = function () use ($getProperty, $bufferHandler, $that) {
|
|
|
+ $that->assertEmpty($getProperty($bufferHandler, 'buffer'));
|
|
|
+ };
|
|
|
+ $assertBuffersEmpty = function() use ($assertBufferOfBufferHandlerEmpty, $getProperty, $fingersCrossedHandler, $that) {
|
|
|
+ $assertBufferOfBufferHandlerEmpty();
|
|
|
+ $that->assertEmpty($getProperty($fingersCrossedHandler, 'buffer'));
|
|
|
+ };
|
|
|
+
|
|
|
+ $logger->debug('debug');
|
|
|
+ $logger->reset();
|
|
|
+ $assertBuffersEmpty();
|
|
|
+ $this->assertFalse($testHandler->hasDebugRecords());
|
|
|
+ $this->assertFalse($testHandler->hasErrorRecords());
|
|
|
+ $this->assertNotSame($uid1, $uid1 = $processorUid1->getUid());
|
|
|
+ $this->assertNotSame($uid2, $uid2 = $processorUid2->getUid());
|
|
|
+
|
|
|
+ $logger->debug('debug');
|
|
|
+ $logger->error('error');
|
|
|
+ $logger->reset();
|
|
|
+ $assertBuffersEmpty();
|
|
|
+ $this->assertTrue($testHandler->hasDebugRecords());
|
|
|
+ $this->assertTrue($testHandler->hasErrorRecords());
|
|
|
+ $this->assertNotSame($uid1, $uid1 = $processorUid1->getUid());
|
|
|
+ $this->assertNotSame($uid2, $uid2 = $processorUid2->getUid());
|
|
|
+
|
|
|
+ $logger->info('info');
|
|
|
+ $this->assertNotEmpty($getProperty($fingersCrossedHandler, 'buffer'));
|
|
|
+ $assertBufferOfBufferHandlerEmpty();
|
|
|
+ $this->assertFalse($testHandler->hasInfoRecords());
|
|
|
+
|
|
|
+ $logger->reset();
|
|
|
+ $assertBuffersEmpty();
|
|
|
+ $this->assertFalse($testHandler->hasInfoRecords());
|
|
|
+ $this->assertNotSame($uid1, $uid1 = $processorUid1->getUid());
|
|
|
+ $this->assertNotSame($uid2, $uid2 = $processorUid2->getUid());
|
|
|
+
|
|
|
+ $logger->notice('notice');
|
|
|
+ $logger->emergency('emergency');
|
|
|
+ $logger->reset();
|
|
|
+ $assertBuffersEmpty();
|
|
|
+ $this->assertFalse($testHandler->hasInfoRecords());
|
|
|
+ $this->assertTrue($testHandler->hasNoticeRecords());
|
|
|
+ $this->assertTrue($testHandler->hasEmergencyRecords());
|
|
|
+ $this->assertNotSame($uid1, $processorUid1->getUid());
|
|
|
+ $this->assertNotSame($uid2, $processorUid2->getUid());
|
|
|
+ }
|
|
|
}
|