/**
  * @test
  * @dataProvider provideEntries
  */
 public function it_can_be_converted_to_array_and_back(MessageLogEntry $entry)
 {
     $entryData = $entry->toArray();
     $copiedEntry = MessageLogEntry::fromArray($entryData);
     $this->assertTrue($entry->messageId()->equals($copiedEntry->messageId()));
     $this->assertEquals($entry->messageName(), $copiedEntry->messageName());
     $this->assertEquals($entry->version(), $copiedEntry->version());
     $this->assertEquals($entry->loggedAt()->format('Y-m-d\\TH:i:s.uO'), $copiedEntry->loggedAt()->format('Y-m-d\\TH:i:s.uO'));
     if (is_null($entry->taskListPosition())) {
         $this->assertNull($copiedEntry->taskListPosition());
     } else {
         $this->assertTrue($entry->taskListPosition()->equals($copiedEntry->taskListPosition()));
     }
     if (is_null($entry->processId())) {
         $this->assertNull($copiedEntry->processId());
     } else {
         $this->assertTrue($entry->processId()->equals($copiedEntry->processId()));
     }
     $this->assertEquals($entry->status()->toString(), $copiedEntry->status()->toString());
     $this->assertEquals($entry->status()->failureMsg(), $copiedEntry->status()->failureMsg());
 }
 /**
  * @param MessageLogEntry $entry
  * @return int affected rows
  */
 private function updateEntry(MessageLogEntry $entry)
 {
     return $this->connection->update(self::TABLE_NAME, $entry->toArray(), ["message_id" => $entry->messageId()->toString()]);
 }