brilo-example/tests/Unit/Service/Remote/RetryingClientTraitTest.php

63 lines
1.6 KiB
PHP
Raw Normal View History

2024-07-29 16:50:58 +00:00
<?php
declare(strict_types=1);
namespace App\Tests\Unit\Service\Remote;
use App\Service\Remote\RetryingClientTrait;
use App\Service\Remote\RetryingFailClientTrait;
use App\Tests\Common\LoggerTrait;
use PHPUnit\Framework\TestCase;
class RetryingClientTraitTest extends TestCase
{
use LoggerTrait;
private int $callCount = 0;
protected function setUp(): void
{
parent::setUp(); // TODO: Change the autogenerated stub
$this->callCount = 0;
}
public function testSuccess(): void
{
$trait = new class {
use RetryingClientTrait {
retryingFailRequest as public; // make the method public
}
};
$result = $trait->retryingFailRequest(2, 0, [\RuntimeException::class], $this->getLogger(), function () {
$this->callCount = $this->callCount + 1;
return 'foo';
});
$this->assertEquals(1, $this->callCount);
$this->assertEquals('foo', $result);
}
public function testRetyingFail(): void
{
$trait = new class {
use RetryingClientTrait {
retryingFailRequest as public; // make the method public
}
};
try {
$trait->retryingFailRequest(2, 0, [\RuntimeException::class], $this->getLogger(), function () {
$this->callCount = $this->callCount + 1;
throw new \RuntimeException("test");
});
} catch (\RuntimeException) {
// do nothing
}
$this->assertEquals(3, $this->callCount);
}
// extra attributes muzeme safe ignorovat
}