1
0
قرینه از https://github.com/matomo-org/matomo.git synced 2025-08-22 15:07:44 +00:00
Files
matomo/plugins/Diagnostics/tests/Integration/Diagnostic/ArchiveInvalidationsInformationalTest.php
Stefan Giehl 7084519a84 [Coding Style] Enable rule Generic.PHP.LowerCaseConstant.Found (#22274)
* [Coding Style] Enable rule Generic.PHP.LowerCaseConstant.Found

* apply cs
2024-06-03 12:40:40 +02:00

87 خطوط
4.7 KiB
PHP

<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\Diagnostics\tests\Integration\Diagnostic;
use Piwik\Common;
use Piwik\Container\StaticContainer;
use Piwik\Db;
use Piwik\Plugins\Diagnostics\Diagnostic\ArchiveInvalidationsInformational;
use Piwik\Tests\Framework\TestCase\IntegrationTestCase;
use Piwik\Translation\Translator;
class ArchiveInvalidationsInformationalTest extends IntegrationTestCase
{
public function testExecute()
{
$segmentHash = md5('something');
$anotherSegmentHash = md5('anothersomething');
$this->insertInvalidations([
['idsite' => '1', 'name' => 'done', 'date1' => '2020-01-13', 'date2' => '2020-01-13', 'period' => '1', 'report' => '', 'ts_started' => '2020-01-13 02:00:00', 'ts_invalidated' => '2020-01-12 02:00:00', 'status' => 1],
['idsite' => '1', 'name' => 'done.MyPlugin', 'date1' => '2020-01-13', 'date2' => '2020-01-19', 'period' => '2', 'report' => '', 'ts_started' => null, 'ts_invalidated' => '2020-01-12 06:00:00', 'status' => 0],
['idsite' => '1', 'name' => 'done' . $segmentHash, 'date1' => '2020-01-01', 'date2' => '2020-01-31', 'period' => '3', 'report' => '', 'ts_started' => null, 'ts_invalidated' => '2020-01-12 04:00:00', 'status' => 0],
['idsite' => '2', 'name' => 'done' . $segmentHash . '.MyPlugin', 'date1' => '2020-01-15', 'date2' => '2020-01-15', 'period' => '1', 'report' => '', 'ts_started' => '2020-01-14 02:00:00', 'ts_invalidated' => '2020-01-12 03:00:00', 'status' => 1],
['idsite' => '2', 'name' => 'done.MyOtherPlugin', 'date1' => '2020-01-15', 'date2' => '2020-01-15', 'period' => '1', 'report' => '', 'ts_started' => null, 'ts_invalidated' => '2020-01-12 12:00:00', 'status' => 0],
['idsite' => '3', 'name' => 'done' . $anotherSegmentHash, 'date1' => '2020-01-06', 'date2' => '2020-01-12', 'period' => '2', 'report' => '', 'ts_started' => null, 'ts_invalidated' => '2020-01-12 02:30:00', 'status' => 0],
['idsite' => '3', 'name' => 'done' . $anotherSegmentHash . '.AThirdPlugin', 'date1' => '2020-01-01', 'date2' => '2020-01-31', 'period' => '3', 'report' => 'aReport', 'ts_started' => '2020-01-13 07:00:00', 'ts_invalidated' => '2020-01-11 02:00:00', 'status' => 1],
['idsite' => '3', 'name' => 'done', 'date1' => '2020-02-06', 'date2' => '2020-02-06', 'period' => '1', 'report' => '', 'ts_started' => null, 'ts_invalidated' => '2020-01-10 02:00:00', 'status' => 0],
['idsite' => '3', 'name' => 'done', 'date1' => '2020-01-16', 'date2' => '2020-01-16', 'period' => '1', 'report' => '', 'ts_started' => null, 'ts_invalidated' => '2020-01-20 02:00:00', 'status' => 0],
['idsite' => '3', 'name' => 'done' . $segmentHash, 'date1' => '2020-01-16', 'date2' => '2020-01-16', 'period' => '1', 'report' => '', 'ts_started' => null, 'ts_invalidated' => '2020-01-12 02:00:00', 'status' => 0],
]);
$diagnostic = new ArchiveInvalidationsInformational(StaticContainer::get(Translator::class));
$counts = $diagnostic->getInvalidationCounts();
$this->assertEquals([
0 => '7',
1 => '3',
'all' => 10,
], $counts);
$minMaxes = $diagnostic->getInvalidationMinMaxes();
$this->assertEquals([
'min_ts_started' => '2020-01-13 02:00:00',
'max_ts_started' => '2020-01-14 02:00:00',
'min_ts_invalidated' => '2020-01-10 02:00:00',
'max_ts_invalidated' => '2020-01-20 02:00:00',
], $minMaxes);
$types = $diagnostic->getInvalidationTypes();
$this->assertEquals([
'count_segment' => 5,
'count_plugin' => 4,
'plugins' => [
'AThirdPlugin',
'MyOtherPlugin',
'MyPlugin',
],
], $types);
}
private function insertInvalidations(array $invalidations)
{
$table = Common::prefixTable('archive_invalidations');
foreach ($invalidations as $invalidation) {
$sql = "INSERT INTO $table (name, idsite, date1, date2, period, report, status, ts_started, ts_invalidated) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
Db::query($sql, [
$invalidation['name'],
$invalidation['idsite'],
$invalidation['date1'],
$invalidation['date2'],
$invalidation['period'],
$invalidation['report'],
$invalidation['status'],
$invalidation['ts_started'],
$invalidation['ts_invalidated'],
]);
}
}
}