mirror of
https://github.com/shlinkio/shlink.git
synced 2025-02-26 04:09:02 +03:00
Test MatomoVisitSender::sendVisitsInDateRange
This commit is contained in:
parent
6121efec59
commit
bbdbafd8db
1 changed files with 44 additions and 0 deletions
|
@ -4,11 +4,14 @@ declare(strict_types=1);
|
||||||
|
|
||||||
namespace ShlinkioTest\Shlink\Core\Matomo;
|
namespace ShlinkioTest\Shlink\Core\Matomo;
|
||||||
|
|
||||||
|
use Exception;
|
||||||
|
use Laminas\Validator\Date;
|
||||||
use MatomoTracker;
|
use MatomoTracker;
|
||||||
use PHPUnit\Framework\Attributes\DataProvider;
|
use PHPUnit\Framework\Attributes\DataProvider;
|
||||||
use PHPUnit\Framework\Attributes\Test;
|
use PHPUnit\Framework\Attributes\Test;
|
||||||
use PHPUnit\Framework\MockObject\MockObject;
|
use PHPUnit\Framework\MockObject\MockObject;
|
||||||
use PHPUnit\Framework\TestCase;
|
use PHPUnit\Framework\TestCase;
|
||||||
|
use Shlinkio\Shlink\Common\Util\DateRange;
|
||||||
use Shlinkio\Shlink\Core\Matomo\MatomoTrackerBuilderInterface;
|
use Shlinkio\Shlink\Core\Matomo\MatomoTrackerBuilderInterface;
|
||||||
use Shlinkio\Shlink\Core\Matomo\MatomoVisitSender;
|
use Shlinkio\Shlink\Core\Matomo\MatomoVisitSender;
|
||||||
use Shlinkio\Shlink\Core\ShortUrl\Entity\ShortUrl;
|
use Shlinkio\Shlink\Core\ShortUrl\Entity\ShortUrl;
|
||||||
|
@ -127,4 +130,45 @@ class MatomoVisitSenderTest extends TestCase
|
||||||
'http://s2.test/bar',
|
'http://s2.test/bar',
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[Test]
|
||||||
|
public function multipleVisitsCanBeSent(): void
|
||||||
|
{
|
||||||
|
$dateRange = DateRange::allTime();
|
||||||
|
$visitor = Visitor::emptyInstance();
|
||||||
|
$bot = Visitor::botInstance();
|
||||||
|
|
||||||
|
$this->visitIterationRepository->expects($this->once())->method('findAllVisits')->with($dateRange)->willReturn([
|
||||||
|
Visit::forBasePath($bot),
|
||||||
|
Visit::forValidShortUrl(ShortUrl::createFake(), $visitor),
|
||||||
|
Visit::forInvalidShortUrl($visitor),
|
||||||
|
]);
|
||||||
|
|
||||||
|
$tracker = $this->createMock(MatomoTracker::class);
|
||||||
|
$tracker->method('setUrl')->willReturn($tracker);
|
||||||
|
$tracker->method('setUserAgent')->willReturn($tracker);
|
||||||
|
$tracker->method('setUrlReferrer')->willReturn($tracker);
|
||||||
|
$tracker->method('setCustomTrackingParameter')->willReturn($tracker);
|
||||||
|
|
||||||
|
$callCount = 0;
|
||||||
|
$this->trackerBuilder->expects($this->exactly(3))->method('buildMatomoTracker')->willReturnCallback(
|
||||||
|
function () use (&$callCount, $tracker) {
|
||||||
|
$callCount++;
|
||||||
|
|
||||||
|
if ($callCount === 2) {
|
||||||
|
throw new Exception('Error');
|
||||||
|
}
|
||||||
|
|
||||||
|
return $tracker;
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
$result = $this->visitSender->sendVisitsInDateRange($dateRange);
|
||||||
|
|
||||||
|
self::assertEquals(2, $result->successfulVisits);
|
||||||
|
self::assertEquals(1, $result->failedVisits);
|
||||||
|
self::assertCount(3, $result);
|
||||||
|
self::assertTrue($result->hasSuccesses());
|
||||||
|
self::assertTrue($result->hasFailures());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue