1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
|
<?php declare(strict_types=1);
/*
* This file is part of the Monolog package.
*
* (c) Jordi Boggiano <j.boggiano@seld.be>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Monolog\Processor;
class MercurialProcessorTest extends \Monolog\Test\MonologTestCase
{
private string $oldCwd;
private string $testDir;
protected function setUp(): void
{
parent::setUp();
$this->oldCwd = getcwd();
$this->testDir = sys_get_temp_dir().'/monolog-processor-mercurial-test';
mkdir($this->testDir, recursive: true);
chdir($this->testDir);
}
protected function tearDown(): void
{
parent::tearDown();
chdir($this->oldCwd);
if (!file_exists($this->testDir)) {
return;
}
$items = new \RecursiveIteratorIterator(
new \RecursiveDirectoryIterator($this->testDir, \RecursiveDirectoryIterator::SKIP_DOTS),
\RecursiveIteratorIterator::CHILD_FIRST
);
foreach ($items as $item) {
$item->isDir() ? rmdir((string) $item) : unlink((string) $item);
}
rmdir($this->testDir);
}
/**
* @covers Monolog\Processor\MercurialProcessor::__invoke
*/
public function testProcessor()
{
if (\defined('PHP_WINDOWS_VERSION_BUILD')) {
exec("where hg 2>NUL", $output, $result);
} else {
exec("which hg 2>/dev/null >/dev/null", $output, $result);
}
if ($result != 0) {
$this->markTestSkipped('hg is missing');
return;
}
exec('hg init');
exec('hg branch default');
touch('test.txt');
exec('hg add test.txt');
exec('hg commit -u foo -m "initial commit"');
$processor = new MercurialProcessor();
$record = $processor($this->getRecord());
$this->assertArrayHasKey('hg', $record->extra);
$this->assertSame('default', $record->extra['hg']['branch']);
$this->assertSame('0', $record->extra['hg']['revision']);
}
}
|