public void NextAndPreviousMethods() { // Arrange var baseStepName = "base"; var previousStepName = "previous"; var nextStepName = "next"; var originStep = new BaseStep(name: baseStepName); var previousStep = new BaseStep(name: previousStepName); var nextStep = new BaseStep(name: nextStepName); // Act var actualNextStep = originStep.SetNext(nextStep); var actualpreviousStep = originStep.SetPrevious(previousStep); // Assert Assert.Equal(nextStep, actualNextStep); Assert.Equal(previousStep, actualpreviousStep); Assert.Equal(nextStep, originStep.Next()); Assert.Equal(previousStep, originStep.Previous()); }
public void SetNextByType() { // Arrange var baseStepName = "base"; var nextStepName = "next"; var originStep = new BaseStep(name: baseStepName); var nextStep = new AnotherStepType(name: nextStepName); var optionsStep = new BaseSelector(); // Act var actualNextStep = originStep.SetNext(nextStep); var actualOptionsStep = actualNextStep.SetNext(optionsStep); // Assert Assert.IsType <AnotherStepType>(actualNextStep); Assert.Equal(nextStep, originStep.Next()); Assert.IsType <BaseSelector>(actualOptionsStep); Assert.Equal(optionsStep, nextStep.Next()); }
public async void AutoProgressSetting() { // Arrange var baseStepName = "base"; var nextStepName = "next"; var settings = new StepSettings() { AutoProgress = true, TrackStateChanges = true }; var originStep = new BaseStep(name: baseStepName, stepSettings: settings); var nextStep = new BaseStep(name: nextStepName, stepSettings: settings); originStep.SetNext(nextStep); // Act var result = await originStep.Execute(_workflowState); // Assert Assert.Equal(_originalWorfklowState.MyInteger + 2, result.State.MyInteger); Assert.Equal(2, result.WorkflowChain.Count); var firstLink = result.WorkflowChain.First.Value; var secondLink = result.WorkflowChain.Last.Value; Assert.Equal(originStep.Id, firstLink.StepIdentifier); Assert.Equal(1, firstLink.GetUncompressedStateSnapshot <SimpleWorkflowState>().MyInteger); Assert.Equal(nextStep.Id, secondLink.StepIdentifier); Assert.Equal(2, secondLink.GetUncompressedStateSnapshot <SimpleWorkflowState>().MyInteger); Assert.Equal(StepActivityStages.Executing, firstLink.StepActivities.First().Activity); Assert.Equal(StepActivityStages.ExecutionCompleted, firstLink.StepActivities.Last().Activity); Assert.Equal(StepActivityStages.Executing, secondLink.StepActivities.First().Activity); Assert.Equal(StepActivityStages.ExecutionCompleted, secondLink.StepActivities.Last().Activity); }