68 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			68 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | namespace Casbin\Bridge\Logger\Tests; | ||
|  | 
 | ||
|  | use Mockery; | ||
|  | use Casbin\Bridge\Logger\LoggerBridge; | ||
|  | use PHPUnit\Framework\TestCase; | ||
|  | 
 | ||
|  | class LoggerTest extends TestCase | ||
|  | { | ||
|  |     public function testEnableLogger() | ||
|  |     { | ||
|  |         $testLog = Mockery::mock(TestLogger::class); | ||
|  | 
 | ||
|  |         $defaultLevel = 'info'; | ||
|  | 
 | ||
|  |         $logger = new LoggerBridge($testLog, $defaultLevel); | ||
|  |         $this->assertFalse($logger->isEnabled()); | ||
|  | 
 | ||
|  |         $logger->enableLog(true); | ||
|  |         $this->assertTrue($logger->isEnabled()); | ||
|  | 
 | ||
|  |         $testLog->shouldReceive('log')->once()->with($defaultLevel, 'foo'); | ||
|  |         $logger->write('foo'); | ||
|  | 
 | ||
|  |         $testLog->shouldReceive('log')->once()->with($defaultLevel, 'foo1foo2'); | ||
|  |         $logger->write('foo1', 'foo2'); | ||
|  | 
 | ||
|  |         $testLog->shouldReceive('log')->once()->with($defaultLevel, json_encode(['foo1', 'foo2'])); | ||
|  |         $logger->write(['foo1', 'foo2']); | ||
|  | 
 | ||
|  |         $testLog->shouldReceive('log')->once()->with($defaultLevel, sprintf('There are %u million cars in %s.', 2, 'Shanghai')); | ||
|  |         $logger->writef('There are %u million cars in %s.', 2, 'Shanghai'); | ||
|  | 
 | ||
|  |         $testLog = Mockery::mock(TestLogger::class); | ||
|  | 
 | ||
|  |         $logger = new LoggerBridge($testLog); | ||
|  | 
 | ||
|  |         $logger->enableLog(false); | ||
|  | 
 | ||
|  |         $testLog->shouldNotHaveReceived('log'); | ||
|  |         $logger->write(['foo1', 'foo2']); | ||
|  | 
 | ||
|  |         $testLog->shouldNotHaveReceived('log'); | ||
|  |         $logger->writef('There are %u million cars in %s.', 2, 'Shanghai'); | ||
|  |     } | ||
|  | 
 | ||
|  |     public function testDisableLogger() | ||
|  |     { | ||
|  |         $testLog = Mockery::mock(TestLogger::class); | ||
|  | 
 | ||
|  |         $defaultLevel = 'info'; | ||
|  | 
 | ||
|  |         $logger = new LoggerBridge($testLog, $defaultLevel); | ||
|  | 
 | ||
|  |         $logger->enableLog(false); | ||
|  |         $this->assertFalse($logger->isEnabled()); | ||
|  | 
 | ||
|  |         $logger->enableLog(false); | ||
|  | 
 | ||
|  |         $testLog->shouldNotHaveReceived('log'); | ||
|  |         $logger->write(['foo1', 'foo2']); | ||
|  | 
 | ||
|  |         $testLog->shouldNotHaveReceived('log'); | ||
|  |         $logger->writef('There are %u million cars in %s.', 2, 'Shanghai'); | ||
|  |     } | ||
|  | } |