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