Skip to content

Commit a4a832e

Browse files
committed
resolving git conflicts
1 parent 28616c1 commit a4a832e

File tree

4 files changed

+133
-37
lines changed

4 files changed

+133
-37
lines changed

composer.lock

Lines changed: 36 additions & 36 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

tests/Handler/RotatingFileHandlerTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types=1);
44

5-
namespace Tests\KaririCode\Logging\Handler;
5+
namespace KaririCode\Logging\Tests\Handler;
66

77
use KaririCode\Contract\ImmutableValue;
88
use KaririCode\Contract\Logging\LogRotator;

tests/Processor/GitProcessorTest.php

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace KaririCode\Logging\Tests\Processor;
6+
7+
use KaririCode\Logging\LogLevel;
8+
use KaririCode\Logging\LogRecord;
9+
use KaririCode\Logging\Processor\GitProcessor;
10+
use PHPUnit\Framework\TestCase;
11+
12+
class GitProcessorTest extends TestCase
13+
{
14+
private GitProcessor $gitProcessor;
15+
16+
protected function setUp(): void
17+
{
18+
$this->gitProcessor = new GitProcessor();
19+
}
20+
21+
public function testProcessHappyPath(): void
22+
{
23+
$record = new LogRecord(LogLevel::INFO, 'Test message');
24+
25+
$processedRecord = $this->gitProcessor->process($record);
26+
27+
$this->assertArrayHasKey('git', $processedRecord->context);
28+
}
29+
30+
public function testProcessWithGitInfo(): void
31+
{
32+
// Simulate Git info
33+
file_put_contents('.git/HEAD', 'ref: refs/heads/main');
34+
file_put_contents('.git/refs/heads/main', 'commit_hash');
35+
36+
$record = new LogRecord(LogLevel::INFO, 'Test message');
37+
$processedRecord = $this->gitProcessor->process($record);
38+
39+
$this->assertEquals('main', $processedRecord->context['git']['branch']);
40+
$this->assertEquals('commit_hash', $processedRecord->context['git']['commit']);
41+
}
42+
}

tests/Util/SamplerTest.php

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Tests\KaririCode\Logging\Util;
6+
7+
use KaririCode\Logging\Util\Sampler;
8+
use PHPUnit\Framework\TestCase;
9+
10+
class SamplerTest extends TestCase
11+
{
12+
public function testConstructorWithValidSampleRate(): void
13+
{
14+
$sampler = new Sampler(0.5);
15+
$this->assertInstanceOf(Sampler::class, $sampler);
16+
}
17+
18+
public function testConstructorWithInvalidSampleRate(): void
19+
{
20+
$this->expectException(\InvalidArgumentException::class);
21+
$this->expectExceptionMessage('Sample rate must be between 0 and 1');
22+
new Sampler(1.5);
23+
}
24+
25+
public function testShouldSampleWithZeroRate(): void
26+
{
27+
28+
$this->expectException(\InvalidArgumentException::class);
29+
$this->expectExceptionMessage('Sample rate must be between 0 and 1');
30+
$sampler = new Sampler(0);
31+
}
32+
33+
public function testShouldSampleWithFullRate(): void
34+
{
35+
$sampler = new Sampler(1);
36+
$this->assertTrue($sampler->shouldSample());
37+
}
38+
39+
public function testShouldSampleDistribution(): void
40+
{
41+
$sampler = new Sampler(0.5);
42+
$samples = 10000;
43+
$trueCount = 0;
44+
45+
for ($i = 0; $i < $samples; $i++) {
46+
if ($sampler->shouldSample()) {
47+
$trueCount++;
48+
}
49+
}
50+
51+
$actualRate = $trueCount / $samples;
52+
$this->assertEqualsWithDelta(0.5, $actualRate, 0.05);
53+
}
54+
}

0 commit comments

Comments
 (0)