Spaces:
No application file
No application file
| 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]); | |
| } | |
| } | |