Spaces:
No application file
No application file
File size: 3,319 Bytes
d2897cd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
<?php
declare(strict_types=1);
namespace Mautic\CoreBundle\Tests\Helper;
use Mautic\CampaignBundle\Controller\CampaignMapStatsController;
use Mautic\CoreBundle\Helper\MapHelper;
use Mautic\CoreBundle\Test\MauticMysqlTestCase;
class MapHelperTest extends MauticMysqlTestCase
{
/**
* @return array<string, array<int, array<string, int|string>>>
*/
private function getStats(): array
{
return [
'contacts' => [
[
'country' => '',
'contacts' => 4,
],
[
'country' => 'Spain',
'contacts' => 12,
],
[
'country' => 'Finland',
'contacts' => 8,
],
],
'read_count' => [
[
'read_count' => '4',
'country' => '',
],
[
'read_count' => '8',
'country' => 'Spain',
],
[
'read_count' => '8',
'country' => 'Finland',
],
],
'clicked_through_count' => [
[
'clicked_through_count' => '4',
'country' => '',
],
[
'clicked_through_count' => '4',
'country' => 'Spain',
],
[
'clicked_through_count' => '4',
'country' => 'Finland',
],
],
];
}
public function testGetOptionLegendText(): void
{
$legendValues = [
'%total' => 4,
'%withCountry' => 2,
];
$this->assertEquals(
'Total: 4 (2 with country)',
MapHelper::getOptionLegendText(CampaignMapStatsController::LEGEND_TEXT, $legendValues)
);
}
public function testBuildMapData(): void
{
$results = MapHelper::buildMapData(
$this->getStats(),
CampaignMapStatsController::MAP_OPTIONS,
CampaignMapStatsController::LEGEND_TEXT
);
$this->assertCount(3, $results);
$this->assertSame([
'data' => [
'ES' => 12,
'FI' => 8,
],
'label' => 'mautic.lead.leads',
'legendText' => 'Total: 24 (20 with country)',
'unit' => 'Contact',
], $results[0]);
$this->assertSame([
'data' => [
'ES' => 8,
'FI' => 8,
],
'label' => 'mautic.email.read',
'legendText' => 'Total: 20 (16 with country)',
'unit' => 'Read',
], $results[1]);
$this->assertSame([
'data' => [
'ES' => 4,
'FI' => 4,
],
'label' => 'mautic.email.click',
'legendText' => 'Total: 12 (8 with country)',
'unit' => 'Click',
], $results[2]);
}
}
|