fedi-feed-router/tests/Traits/CreatesArticleFetcher.php
myrmidex d2919758f5
All checks were successful
CI / ci (push) Successful in 5m52s
CI / ci (pull_request) Successful in 5m46s
Build and Push Docker Image / build (push) Successful in 4m6s
Fix Pint 1.29.0 lint issues and update CI workflow
2026-03-18 20:01:25 +01:00

38 lines
1.2 KiB
PHP

<?php
namespace Tests\Traits;
use App\Services\Article\ArticleFetcher;
use App\Services\Log\LogSaver;
use Mockery;
use Mockery\MockInterface;
trait CreatesArticleFetcher
{
protected function createArticleFetcher(?LogSaver $logSaver = null): ArticleFetcher
{
if (! $logSaver) {
$logSaver = Mockery::mock(LogSaver::class);
$logSaver->shouldReceive('info')->zeroOrMoreTimes();
$logSaver->shouldReceive('warning')->zeroOrMoreTimes();
$logSaver->shouldReceive('error')->zeroOrMoreTimes();
$logSaver->shouldReceive('debug')->zeroOrMoreTimes();
}
return new ArticleFetcher($logSaver);
}
/** @return array{ArticleFetcher, MockInterface} */
protected function createArticleFetcherWithMockedLogSaver(): array
{
$logSaver = Mockery::mock(LogSaver::class);
$logSaver->shouldReceive('info')->zeroOrMoreTimes();
$logSaver->shouldReceive('warning')->zeroOrMoreTimes();
$logSaver->shouldReceive('error')->zeroOrMoreTimes();
$logSaver->shouldReceive('debug')->zeroOrMoreTimes();
$articleFetcher = new ArticleFetcher($logSaver);
return [$articleFetcher, $logSaver];
}
}