private WorkflowStep BuildFakeStep(IStepBody stepBody, List <DataMapping> inputs, List <DataMapping> outputs) { var result = A.Fake <WorkflowStep>(); A.CallTo(() => result.Id).Returns(0); A.CallTo(() => result.BodyType).Returns(stepBody.GetType()); A.CallTo(() => result.ResumeChildrenAfterCompensation).Returns(true); A.CallTo(() => result.RevertChildrenAfterCompensation).Returns(false); A.CallTo(() => result.ConstructBody(ServiceProvider)).Returns(stepBody); A.CallTo(() => result.Inputs).Returns(inputs); A.CallTo(() => result.Outputs).Returns(outputs); A.CallTo(() => result.Outcomes).Returns(new List <StepOutcome>()); A.CallTo(() => result.InitForExecution(A <WorkflowExecutorResult> .Ignored, A <WorkflowDefinition> .Ignored, A <WorkflowInstance> .Ignored, A <ExecutionPointer> .Ignored)).Returns(ExecutionPipelineDirective.Next); A.CallTo(() => result.BeforeExecute(A <WorkflowExecutorResult> .Ignored, A <IStepExecutionContext> .Ignored, A <ExecutionPointer> .Ignored, A <IStepBody> .Ignored)).Returns(ExecutionPipelineDirective.Next); return(result); }