57 lines
1.5 KiB
PHP
57 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Tests\Service\Remote;
|
|
|
|
use App\Service\Remote\RetryingFailClientTrait;
|
|
use App\Tests\Common\LoggerTrait;
|
|
use PHPUnit\Framework\TestCase;
|
|
use Psr\Log\LoggerInterface;
|
|
|
|
class RetryingFailClientTraitTest 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() {
|
|
$trait = new class {
|
|
use RetryingFailClientTrait {
|
|
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() {
|
|
$trait = new class {
|
|
use RetryingFailClientTrait {
|
|
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);
|
|
}
|
|
}
|