public void ToXmlShouldSerialize() { const string Expected = @"<StateTracker xmlns:i=""http://www.w3.org/2001/XMLSchema-instance"" xmlns=""http://schemas.microsoft.com/2012/07/Microsoft.Activities.Extensions""> <StateMachines xmlns:d2p1=""http://schemas.datacontract.org/2004/07/Microsoft.Activities.Extensions.Tracking""> <StateMachine> <CurrentState>State1</CurrentState> <InstanceId>{0}</InstanceId> <InstanceState>Executing</InstanceState> <MaxHistory>1000</MaxHistory> <Name>StateMachine</Name> <PossibleTransitions> <Transition>T1</Transition> <Transition>T2</Transition> </PossibleTransitions> <PreviousState i:nil=""true"" /> <StateHistory> <State>State1</State> </StateHistory> </StateMachine> </StateMachines> </StateTracker>"; // Arrange var activity = new StateMachineExample(); var host = WorkflowApplicationTest.Create(activity); var tracker = new StateTracker(); host.Extensions.Add(tracker); try { // Act host.TestWorkflowApplication.RunUntilBookmark(StateTrigger.T1); var actual = tracker.ToXml(); // Assert Assert.AreEqual(string.Format(Expected, host.Id), actual); } finally { tracker.Trace(); host.Tracking.Trace(); } }
public void ParseShouldDeserialize() { // Arrange var activity = new StateMachineExample(); var host = WorkflowApplicationTest.Create(activity); var tracker1 = new StateTracker(); StateTracker tracker2 = null; host.Extensions.Add(tracker1); try { // Act host.TestWorkflowApplication.RunUntilBookmark(StateTrigger.T1); var xml = tracker1.ToXml(); tracker2 = StateTracker.Parse(xml); // Assert Assert.AreEqual(tracker1.StateMachines.Count, tracker2.StateMachines.Count); for (var i = 0; i < tracker1.StateMachines.Count; i++) { AssertEquivalent(tracker1.StateMachines[i], tracker2.StateMachines[i]); } } finally { tracker1.Trace(); if (tracker2 != null) { tracker2.Trace(); } host.Tracking.Trace(); } }