Spaces:
No application file
No application file
File size: 2,514 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 |
<?php
namespace Mautic\LeadBundle\Tests\Event;
use Mautic\LeadBundle\Event\LeadTimelineEvent;
class LeadTimelineEventTest extends \PHPUnit\Framework\TestCase
{
/**
* @testdox Every event in the timeline should have a unique eventId so test that one is generated if the subscriber forgets
*
* @covers \Mautic\LeadBundle\Event\LeadTimelineEvent::addEvent
* @covers \Mautic\LeadBundle\Event\LeadTimelineEvent::getEvents
* @covers \Mautic\LeadBundle\Event\LeadTimelineEvent::generateEventId
*/
public function testEventIdIsGeneratedIfNotSetBySubscriber(): void
{
$payload = [
[
'event' => 'foo',
'eventLabel' => 'Foo',
'eventType' => 'foo',
'timestamp' => new \DateTime(),
'extra' => [
'something' => 'something',
],
'icon' => 'ri-speed-up-line',
'contactId' => 1,
],
[
'event' => 'bar',
'eventLabel' => 'Bar',
'eventType' => 'bar',
'timestamp' => new \DateTime(),
'extra' => [
'something' => 'something else',
],
'icon' => 'ri-speed-up-line',
'contactId' => 2,
],
[
'event' => 'foobar',
'eventId' => 'foobar123',
'eventLabel' => 'Foo Bar',
'eventType' => 'foobar',
'timestamp' => new \DateTime(),
'extra' => [
'something' => 'something else',
],
'icon' => 'ri-speed-up-line',
'contactId' => 2,
],
];
$event = new LeadTimelineEvent();
foreach ($payload as $data) {
$event->addEvent($data);
}
$events = $event->getEvents();
$id1 = hash('crc32', json_encode($payload[0]), false);
$this->assertTrue(isset($events[0]['eventId']));
$this->assertEquals('foo'.$id1, $events[0]['eventId']);
$id2 = hash('crc32', json_encode($payload[1]), false);
$this->assertTrue(isset($events[1]['eventId']));
$this->assertEquals('bar'.$id2, $events[1]['eventId']);
$this->assertTrue(isset($events[2]['eventId']));
$this->assertEquals('foobar123', $events[2]['eventId']);
}
}
|