当前路径:vendor/topthink/framework/tests/LogTest.php <?php namespace think\tests; use InvalidArgumentException; use Mockery as m; use Mockery\MockInterface; use org\bovigo\vfs\vfsStream; use PHPUnit\Framework\TestCase; use think\Log; use think\log\ChannelSet; class LogTest extends TestCase { use InteractsWithApp; /** @var Log|MockInterface */ protected $log; protected function tearDown(): void { m::close(); } protected function setUp() { $this->prepareApp(); $this->log = new Log($this->app); } public function testGetConfig() { $config = [ 'default' => 'file', ]; $this->config->shouldReceive('get')->with('log')->andReturn($config); $this->assertEquals($config, $this->log->getConfig()); $this->expectException(InvalidArgumentException::class); $this->log->getChannelConfig('foo'); } public function testChannel() { $this->assertInstanceOf(ChannelSet::class, $this->log->channel(['file', 'mail'])); } public function testLogManagerInstances() { $this->config->shouldReceive('get')->with("log.channels.single", null)->andReturn(['type' => 'file']); $channel1 = $this->log->channel('single'); $channel2 = $this->log->channel('single'); $this->assertSame($channel1, $channel2); } public function testFileLog() { $root = vfsStream::setup(); $this->config->shouldReceive('get')->with("log.default", null)->andReturn('file'); $this->config->shouldReceive('get')->with("log.channels.file", null)->andReturn(['type' => 'file', 'path' => $root->url()]); $this->log->info('foo'); $this->assertEquals($this->log->getLog(), ['info' => ['foo']]); $this->log->clear(); $this->assertEmpty($this->log->getLog()); $this->log->error('foo'); $this->assertArrayHasKey('error', $this->log->getLog()); $this->log->emergency('foo'); $this->assertArrayHasKey('emergency', $this->log->getLog()); $this->log->alert('foo'); $this->assertArrayHasKey('alert', $this->log->getLog()); $this->log->critical('foo'); $this->assertArrayHasKey('critical', $this->log->getLog()); $this->log->warning('foo'); $this->assertArrayHasKey('warning', $this->log->getLog()); $this->log->notice('foo'); $this->assertArrayHasKey('notice', $this->log->getLog()); $this->log->debug('foo'); $this->assertArrayHasKey('debug', $this->log->getLog()); $this->log->sql('foo'); $this->assertArrayHasKey('sql', $this->log->getLog()); $this->log->custom('foo'); $this->assertArrayHasKey('custom', $this->log->getLog()); $this->log->write('foo'); $this->assertTrue($root->hasChildren()); $this->assertEmpty($this->log->getLog()); $this->log->close(); $this->log->info('foo'); $this->assertEmpty($this->log->getLog()); } public function testSave() { $root = vfsStream::setup(); $this->config->shouldReceive('get')->with("log.default", null)->andReturn('file'); $this->config->shouldReceive('get')->with("log.channels.file", null)->andReturn(['type' => 'file', 'path' => $root->url()]); $this->log->info('foo'); $this->log->save(); $this->assertTrue($root->hasChildren()); } }
相关源码
- 可旋转的彩色立方体C#源代码2021-10-29
- 在线考试系统2021-10-15
- EduSoho开源网校系统源码2019-06-27
- 仿拼多多小程序商城源码2019-06-06
- PHP5网站运行监测系统源码2017-04-14
关于我们 | 顾问团队 | 发展历程 | 联系我们 | 源码上传
联系电话(Tel):4008-010-151(免长途)
地址:北京市海淀区大恒科技大厦五层 邮编:100080
Floor 5th,Daheng Building,Zhongguancun,Beijing,China,100080
51Aspx.com 版权所有 CopyRight © 2006-2023. 京ICP备09089570号 | 京公网安备11010702000869号
联系电话(Tel):4008-010-151(免长途)
地址:北京市海淀区大恒科技大厦五层 邮编:100080
Floor 5th,Daheng Building,Zhongguancun,Beijing,China,100080
51Aspx.com 版权所有 CopyRight © 2006-2023. 京ICP备09089570号 | 京公网安备11010702000869号