/** * @param array $taskListArr * @return TaskList */ public static function fromArray(array $taskListArr) { Assertion::keyExists($taskListArr, 'taskListId'); Assertion::keyExists($taskListArr, 'entries'); Assertion::isArray($taskListArr['entries']); $taskListId = TaskListId::fromString($taskListArr['taskListId']); $entries = []; foreach ($taskListArr['entries'] as $entryArr) { $entries[] = TaskListEntry::fromArray($entryArr); } return self::fromTaskListEntries($taskListId, $entries); }
/** * @test */ public function it_can_be_converted_to_array_and_back_after_changing_status_and_logging_messages() { $taskListEntry = $this->getTestTaskListEntry(); $wfMessage = $this->getUserDataCollectedTestMessage(); $wfMessage->connectToProcessTask($taskListEntry->taskListPosition()); $taskListEntry->markAsRunning(); $taskListEntry->logMessage(LogMessage::logDebugMsg("A debug msg", $wfMessage)); $taskListEntry->logMessage(LogMessage::logInfoDataProcessingStarted($wfMessage)); $arrCopy = $taskListEntry->getArrayCopy(); $equalTaskListEntry = TaskListEntry::fromArray($arrCopy); $this->assertEqualTaskListEntries($taskListEntry, $equalTaskListEntry); }
/** * @test */ public function it_can_convert_task_list_entries_to_array() { $taskList = $this->getTestTaskList(); $taskListEntryArrs = $taskList->getArrayCopyOfEntries(); $taskListEntries = []; foreach ($taskListEntryArrs as $taskListEntryArr) { $taskListEntries[] = TaskListEntry::fromArray($taskListEntryArr); } $taskListCopy = TaskList::fromTaskListEntries($taskList->taskListId(), $taskListEntries); $this->assertTrue($taskList->taskListId()->equals($taskListCopy->taskListId())); $this->assertEquals($taskList->getArrayCopyOfEntries(), $taskListCopy->getArrayCopyOfEntries()); }