public function testStartsAsUnreadAndCanBeMarkedAsRead() { $fromUser = \Mockery::mock('\\Mentoring\\User\\User'); $body = 'This is my message'; $createdAt = new \DateTime(); $message = new Message($fromUser, $body, $createdAt); $this->assertFalse($message->isRead()); $message->markRead(); $this->assertTrue($message->isRead()); }
protected function hydrateConversation(array $convo_data) { $messages_data = $this->dbal->fetchAll('SELECT * FROM messages WHERE conversation_id = :conversation_id', ['conversation_id' => $convo_data['id']]); $messages = []; foreach ($messages_data as $message_data) { $messages[] = $message = new Message($this->userService->fetchUserById($message_data['from_user_id']), $message_data['body'], new \DateTime($message_data['created_at'])); $message->setId($message_data['id']); if ($message_data['is_read']) { $message->markRead(); } } $conversation = new Conversation($this->userService->fetchUserById($convo_data['from_user_id']), $this->userService->fetchUserById($convo_data['to_user_id']), $convo_data['subject'], $messages[0]); $conversation->setId($convo_data['id']); foreach ($messages as $message) { $conversation->addMessage($message); } $this->in_memory_convos[$conversation->getId()] = $conversation; return $conversation; }