public void should_assign_output()
        {
            Expression <Func <MyData, int> > memberExpr = (x => x.Value1);
            Expression <Func <MyStep, int> > valueExpr  = (x => x.Value1);
            var subject = new MemberMapParameter(valueExpr, memberExpr);
            var data    = new MyData();
            var step    = new MyStep
            {
                Value1 = 5
            };

            subject.AssignOutput(data, step, new StepExecutionContext());

            data.Value1.Should().Be(step.Value1);
        }
        public IUserTaskReturnBuilder <TData> WithOption(string value, string label)
        {
            var newStep = new WorkflowStep <When>();
            Expression <Func <When, object> >  inputExpr = (x => x.ExpectedOutcome);
            Expression <Func <TData, string> > valueExpr = (x => value);
            var mapping = new MemberMapParameter(valueExpr, inputExpr);

            newStep.Inputs.Add(mapping);

            WorkflowBuilder.AddStep(newStep);
            var stepBuilder = new UserTaskReturnBuilder <TData>(WorkflowBuilder, newStep, this);

            Step.Children.Add(newStep.Id);
            _wrapper.Options[label] = value;

            return(stepBuilder);
        }
        public void should_convert_input()
        {
            Expression <Func <MyStep, object> > memberExpr = (x => x.Value2);
            Expression <Func <MyData, int> >    valueExpr  = (x => x.Value1);
            var subject = new MemberMapParameter(valueExpr, memberExpr);

            var data = new MyData
            {
                Value1 = 5
            };

            var step = new MyStep();

            subject.AssignInput(data, step, new StepExecutionContext());

            step.Value2.Should().Be(data.Value1);
        }