add FileSystemTest

This commit is contained in:
sunxyw
2022-12-23 20:22:43 +08:00
parent 1d131871f1
commit 5e3d07abe6
6 changed files with 160 additions and 7 deletions

View File

@@ -4,8 +4,10 @@ declare(strict_types=1);
namespace Tests\Trait;
use Prophecy\Argument;
use Prophecy\Prophet;
use Psr\Log\AbstractLogger;
use Psr\Log\LogLevel;
/**
* 模拟 Logger 行为
@@ -36,9 +38,21 @@ trait HasLogger
private function startMockLogger(): void
{
$logger = $this->prophet->prophesize(AbstractLogger::class);
$logger->log()->will(function ($args) {
$this->mockLog(...$args);
});
$levels = [
LogLevel::EMERGENCY,
LogLevel::ALERT,
LogLevel::CRITICAL,
LogLevel::ERROR,
LogLevel::WARNING,
LogLevel::NOTICE,
LogLevel::INFO,
LogLevel::DEBUG,
];
$log_it = fn (...$args) => $this->mockLog(...$args);
foreach ($levels as $level) {
$logger->{$level}(Argument::type('string'), Argument::any())->will(fn ($args) => $log_it($level, ...$args));
}
$logger->log(Argument::in($levels), Argument::type('string'), Argument::any())->will(fn ($args) => $log_it(...$args));
ob_logger_register($logger->reveal());
}
}