static IDev2Activity ReplaceActivityWithMock(IDev2Activity resource, IServiceTestStep foundTestStep) { IDev2Activity overriddenActivity = null; if (foundTestStep.ActivityType == typeof(DsfDecision).Name) { var serviceTestOutput = foundTestStep.StepOutputs.FirstOrDefault(output => output.Variable == GlobalConstants.ArmResultText); if (serviceTestOutput != null) { overriddenActivity = new TestMockDecisionStep(resource.As <DsfDecision>()) { NameOfArmToReturn = serviceTestOutput.Value }; } } else if (foundTestStep.ActivityType == typeof(DsfSwitch).Name) { var serviceTestOutput = foundTestStep.StepOutputs.FirstOrDefault(output => output.Variable == GlobalConstants.ArmResultText); if (serviceTestOutput != null) { overriddenActivity = new TestMockSwitchStep(resource.As <DsfSwitch>()) { ConditionToUse = serviceTestOutput.Value }; } } else { overriddenActivity = new TestMockStep(resource, foundTestStep.StepOutputs.ToList()); } return(overriddenActivity); }
private static IDev2Activity NextActivity(IDev2Activity resource, List <IServiceTestStep> testSteps) { var foundTestStep = testSteps?.FirstOrDefault(step => resource != null && step.UniqueId.ToString() == resource.UniqueID); if (foundTestStep != null) { if (foundTestStep.ActivityType == typeof(DsfDecision).Name && foundTestStep.Type == StepType.Mock) { var serviceTestOutput = foundTestStep.StepOutputs.FirstOrDefault(output => output.Variable == GlobalConstants.ArmResultText); if (serviceTestOutput != null) { resource = new TestMockDecisionStep(resource as DsfDecision) { NameOfArmToReturn = serviceTestOutput.Value }; } } else if (foundTestStep.ActivityType == typeof(DsfSwitch).Name && foundTestStep.Type == StepType.Mock) { var serviceTestOutput = foundTestStep.StepOutputs.FirstOrDefault(output => output.Variable == GlobalConstants.ArmResultText); if (serviceTestOutput != null) { resource = new TestMockSwitchStep(resource as DsfSwitch) { ConditionToUse = serviceTestOutput.Value }; } } else if (foundTestStep.ActivityType == typeof(DsfSequenceActivity).Name) { var sequenceActivity = resource as DsfSequenceActivity; if (sequenceActivity != null) { var acts = sequenceActivity.Activities; for (int index = 0; index < acts.Count; index++) { var activity = acts[index]; if (foundTestStep.Children != null) { var replacement = NextActivity(activity as IDev2Activity, foundTestStep.Children.ToList()) as Activity; acts[index] = replacement; } } } } else if (foundTestStep.ActivityType == typeof(DsfForEachActivity).Name) { var forEach = resource as DsfForEachActivity; if (forEach != null) { if (foundTestStep.Children != null) { var replacement = NextActivity(forEach.DataFunc.Handler as IDev2Activity, foundTestStep.Children.ToList()) as Activity; forEach.DataFunc.Handler = replacement; } } } else if (foundTestStep.ActivityType == typeof(DsfSelectAndApplyActivity).Name) { var forEach = resource as DsfSelectAndApplyActivity; if (forEach != null) { if (foundTestStep.Children != null) { var replacement = NextActivity(forEach.ApplyActivityFunc.Handler as IDev2Activity, foundTestStep.Children.ToList()) as Activity; forEach.ApplyActivityFunc.Handler = replacement; } } } else if (foundTestStep.Type == StepType.Mock) { resource = new TestMockStep(resource, foundTestStep.StepOutputs.ToList()); } } return(resource); }