private Mock <IServiceController> InitMoqServiceController(bool hasQuestion = false,
                                                                   TypeInference.InferenceResult.TypeEnum inferedType = TypeInference.InferenceResult.TypeEnum.String)
        {
            var moq = new Mock <IServiceController>();
            var moqExecutionResult = InitMoqExecutionResult(hasQuestion, inferedType);

            moq.Setup(m => m.Execute(It.IsAny <IExecuteRequest>())).Returns(moqExecutionResult.Object);
            moq.Setup(m => m.Parse(It.IsAny <IParseRequest>())).Returns(It.IsAny <IParseResult>());
            return(moq);
        }
        private Mock <IExecutionResult> InitMoqExecutionResult(bool hasQuestion, TypeInference.InferenceResult.TypeEnum inferedType)
        {
            var moq = new Mock <IExecutionResult>();
            var moqParameterCollection = new Mock <IParametersCollection>();

            if (hasQuestion)
            {
                var moqQuestionArgs = new Mock <IQuestionArgs>();
                moq.Setup(m => m.Questions).Returns(moqQuestionArgs.Object);
                moq.Setup(m => m.InferedType).Returns(inferedType);
            }
            return(moq);
        }