예제 #1
0
 public function testCreateAndGetters()
 {
     $fromUser = \Mockery::mock('\\Mentoring\\User\\User');
     $toUser = \Mockery::mock('\\Mentoring\\User\\User');
     $subject = 'My subject';
     $opening_message = \Mockery::mock('\\Mentoring\\Conversation\\Message');
     $opening_message->shouldReceive('getCreatedAt')->andReturn($started_at = new \DateTime());
     $conversation = new Conversation($fromUser, $toUser, $subject, $opening_message);
     $this->assertSame($fromUser, $conversation->getFromUser());
     $this->assertSame($toUser, $conversation->getToUser());
     $this->assertSame($subject, $conversation->getSubject());
     $this->assertSame($started_at, $conversation->getStartedAt());
     $this->assertSame($opening_message, $conversation->getFirstMessage());
 }
예제 #2
0
 /**
  * @param Conversation $conversation
  */
 public function save(Conversation $conversation)
 {
     $convo_data = ['id' => $conversation->getId(), 'from_user_id' => $conversation->getFromUser()->getId(), 'to_user_id' => $conversation->getToUser()->getId(), 'subject' => $conversation->getSubject(), 'started_at' => $conversation->getStartedAt()->format(\DateTime::ISO8601)];
     if ($convo_data['id']) {
         $this->dbal->update('conversations', $convo_data, ['id' => $convo_data['id']]);
     } else {
         $this->dbal->insert('conversations', $convo_data);
         $conversation->setId($this->dbal->lastInsertId());
     }
     foreach ($conversation->getAllMessages() as $message) {
         $message_data = ['id' => $message->getId(), 'conversation_id' => $conversation->getId(), 'from_user_id' => $message->getFromUser()->getId(), 'is_read' => $message->isRead() ? 1 : 0, 'body' => $message->getBody(), 'created_at' => $message->getCreatedAt()->format(\DateTime::ISO8601)];
         if ($message_data['id']) {
             $this->dbal->update('messages', $message_data, ['id' => $message_data['id']]);
         } else {
             $this->dbal->insert('messages', $message_data);
             $message->setId($this->dbal->lastInsertId());
         }
     }
 }