public void DataObject_Ctor_WhenXmlStringDoesNotHaveBookmarkExecutionCallbackIDSet_ExpectParseAndSet()
{
//------------Setup for test--------------------------
var debugID = Guid.NewGuid();
var envID = Guid.NewGuid();
var exeID = Guid.NewGuid();
var parentID = Guid.NewGuid();
var instID = Guid.NewGuid();
var xmlStr = "<Payload>" +
"<IsDebug>true</IsDebug>" +
"<DebugSessionID>" + debugID + "</DebugSessionID>" +
"<EnvironmentID>" + envID + "</EnvironmentID>" +
"<IsOnDemandSimulation>true</IsOnDemandSimulation>" +
"<ParentServiceName>TestParentService</ParentServiceName>" +
"<ExecutionCallbackID>" + exeID + "</ExecutionCallbackID>" +
"<ParentInstanceID>" + parentID + "</ParentInstanceID>" +
"<NumberOfSteps>5</NumberOfSteps>" +
"<CurrentBookmarkName>MyBookmark</CurrentBookmarkName>" +
"<WorkflowInstanceId>" + instID + "</WorkflowInstanceId>" +
"<IsDataListScoped>true</IsDataListScoped>" +
"<Service>MyTestService</Service>" +
"</Payload>";
//------------Execute Test---------------------------
var dataObjct = new DsfDataObject(xmlStr, Guid.NewGuid(), "<x>1</x>");
//------------Assert Results-------------------------
Assert.IsTrue(dataObjct.IsDebug);
StringAssert.Contains(dataObjct.DebugSessionID.ToString(), debugID.ToString());
StringAssert.Contains(dataObjct.EnvironmentID.ToString(), envID.ToString());
Assert.IsTrue(dataObjct.IsOnDemandSimulation);
StringAssert.Contains(dataObjct.ParentServiceName, "TestParentService");
StringAssert.Contains(dataObjct.ExecutionCallbackID.ToString(), exeID.ToString());
StringAssert.Contains(dataObjct.BookmarkExecutionCallbackID.ToString(), exeID.ToString());
StringAssert.Contains(dataObjct.ParentInstanceID, parentID.ToString());
Assert.AreEqual(5, dataObjct.NumberOfSteps, "Wrong number of steps");
StringAssert.Contains(dataObjct.CurrentBookmarkName, "MyBookmark");
StringAssert.Contains(dataObjct.WorkflowInstanceId.ToString(), instID.ToString());
Assert.IsTrue(dataObjct.IsDataListScoped);
StringAssert.Contains(dataObjct.ServiceName, "MyTestService");
StringAssert.Contains(dataObjct.RawPayload.ToString(), xmlStr);
// Default Data Merge Checks
StringAssert.Contains(dataObjct.DatalistOutMergeID.ToString(), Guid.Empty.ToString());
StringAssert.Contains(dataObjct.DatalistOutMergeType.ToString(), enDataListMergeTypes.Intersection.ToString());
StringAssert.Contains(dataObjct.DatalistOutMergeDepth.ToString(), enTranslationDepth.Data_With_Blank_OverWrite.ToString());
StringAssert.Contains(dataObjct.DatalistOutMergeFrequency.ToString(), DataListMergeFrequency.OnCompletion.ToString());
StringAssert.Contains(dataObjct.DatalistInMergeID.ToString(), Guid.Empty.ToString());
StringAssert.Contains(dataObjct.DatalistInMergeType.ToString(), enDataListMergeTypes.Intersection.ToString());
StringAssert.Contains(dataObjct.DatalistInMergeDepth.ToString(), enTranslationDepth.Data_With_Blank_OverWrite.ToString());
}