/** * @param array $payload * * @return MessageEchoEvent */ public static function createMessageEchoEvent(array $payload) { $message = MessageEcho::create($payload['message']); $senderId = $payload['sender']['id']; $recipientId = $payload['recipient']['id']; $timestamp = $payload['timestamp']; return new MessageEchoEvent($senderId, $recipientId, $timestamp, $message); }
function it_create_a_message_echo_event() { $raw = ' { "sender":{ "id":"PAGE_ID" }, "recipient":{ "id":"USER_ID" }, "timestamp":1457764197627, "message":{ "is_echo":true, "app_id":1517776481860111, "metadata": "DEVELOPER_DEFINED_METADATA_STRING", "mid":"mid.1457764197618:41d102a3e1ae206a38", "seq":73 } } '; $arr = json_decode($raw, true); $expectedEvent = new MessageEchoEvent('PAGE_ID', 'USER_ID', 1457764197627, MessageEcho::create($arr['message'])); $event = $this::createMessageEchoEvent($arr); $event->shouldBeLike($expectedEvent); $event2 = $this::create($arr); $event2->shouldBeLike($expectedEvent); }