Spaces:
No application file
No application file
namespace Mautic\CampaignBundle\Tests\Helper; | |
use Mautic\CampaignBundle\Entity\Campaign; | |
use Mautic\CampaignBundle\Event\CampaignLeadChangeEvent; | |
use Mautic\CampaignBundle\Helper\CampaignEventHelper; | |
use Mautic\CampaignBundle\Tests\CampaignTestAbstract; | |
class CampaignEventHelperTest extends CampaignTestAbstract | |
{ | |
public function testValidateLeadChangeTriggerWithEmptyCampaigns(): void | |
{ | |
$eventDetails = new CampaignLeadChangeEvent(new Campaign(), [], 'badaction'); | |
$event = [ | |
'properties' => [ | |
'campaigns' => [], | |
'action' => 'added', | |
], | |
'campaign' => [ | |
'id' => null, | |
], | |
]; | |
$result = CampaignEventHelper::validateLeadChangeTrigger($eventDetails, $event); | |
$this->assertFalse($result); | |
} | |
public function testValidateLeadChangeTriggerWithUnmatchingCampaignsAndInvalidAction(): void | |
{ | |
$eventDetails = new CampaignLeadChangeEvent(new Campaign(), [], 'badaction'); | |
$event = [ | |
'properties' => [ | |
'campaigns' => [3], | |
'action' => 'added', | |
], | |
'campaign' => [ | |
'id' => 4, | |
], | |
]; | |
$result = CampaignEventHelper::validateLeadChangeTrigger($eventDetails, $event); | |
$this->assertFalse($result); | |
} | |
public function testValidateLeadChangeTriggerWithMatchingCampaignsAndInvalidAction(): void | |
{ | |
$eventDetails = new CampaignLeadChangeEvent(new Campaign(), [], 'removed'); | |
$event = [ | |
'properties' => [ | |
'campaigns' => [3], | |
'action' => 'added', | |
], | |
'campaign' => [ | |
'id' => 3, | |
], | |
]; | |
$result = CampaignEventHelper::validateLeadChangeTrigger($eventDetails, $event); | |
$this->assertFalse($result); | |
} | |
public function testValidateLeadChangeTriggerWithMatchingCampaignsAndVariousActions(): void | |
{ | |
$actions = [ | |
'added' => true, | |
'removed' => true, | |
'invalid' => false, | |
]; | |
foreach ($actions as $action => $expectedResult) { | |
$campaignId = 3; | |
$eventDetails = new CampaignLeadChangeEvent(new Campaign(), [], $action); | |
$event = [ | |
'properties' => [ | |
'campaigns' => [$campaignId, 8], | |
'action' => $action, | |
], | |
'campaign' => [ | |
'id' => $campaignId, | |
], | |
]; | |
$result = CampaignEventHelper::validateLeadChangeTrigger($eventDetails, $event); | |
$this->assertSame($expectedResult, $result); | |
} | |
} | |
} | |