Beispiel #1
0
        public void resolve_properties_for_one_parameter_passed_as_method_arg()
        {
            var val = "other";

            MethodCallParser.ToArguments <FakeEndpoint>(x => x.do_stuff(val))
            .ShouldHaveTheSameElementsAs("other");
        }
Beispiel #2
0
        private void ParseMethodCalls(CSharpSolution solution, SDRepository sdRepository)
        {
            var methodCallParser = new MethodCallParser(sdRepository, solution);

            methodCallParser.OnItemParseStart += (n) => { ExecuteOnStepMessage(_parserStrings.ParsingMethod + ": " + n); };
            methodCallParser.ParseMethodCalls();
        }
        public void TestMethodCallParser()
        {
            CustomVariable variable = MethodCallParser.GetCustomVariableFromNosOrElement(mParentElementRuntime.ContainedElements[0], "CsvTypeVariable");

            if (variable == null || variable.DefaultValue == null)
            {
                throw new Exception("The MethodCallParser is not properly finding values on NamedObjects");
            }
        }
Beispiel #4
0
        private void ParseMethodCalls(ParserOptions parserOptions)
        {
            for (int i = 0; i < parserOptions.SDSolution.Repositories.Count; i++)
            {
                var sdRepository = parserOptions.SDSolution.Repositories[i];
                ExecuteOnStepMessage(string.Format(_parserStrings.ParsingMethod, sdRepository.TargetFx.Name));
                ExecuteOnStepProgress((int)((double)i / parserOptions.SDSolution.Repositories.Count * 40) + 60);

                var methodParser = new MethodCallParser(parserOptions);
                methodParser.ParseMethodCalls();
            }
        }
Beispiel #5
0
        public void read_route_data_from_arguments()
        {
            var method = ReflectionHelper.GetMethod <SomeEndpoint>(x => x.go(null, 3));
            var param  = method.GetParameters().Last();

            var arg = new RouteArgument("number", 0);

            arg.MappedParameter = param;

            var arguments = MethodCallParser.ToArguments <SomeEndpoint>(x => x.go(null, 3));

            arg.ReadRouteDataFromMethodArguments(arguments).ShouldBe("3");
        }
Beispiel #6
0
        private void ParseMethodCalls()
        {
            var pi = 0;
            var methodCallParser = new MethodCallParser(_repository, _solution);

            methodCallParser.OnItemParseStart += (n, i, t) => { PostProgress(_sdBuildStrings.ParsingMethod + ": " + n, i, t, pi, _repository.GetAllNamespaces().Count); };

            var namespaces = _repository.GetAllNamespaces();

            for (int i = 0; i < namespaces.Count; i++)
            {
                pi = i;
                methodCallParser.ParseMethodCalls(namespaces[i]);
            }
        }
        public bool TryParse(Expression e, out object val,
                             MemberInfo memberInfo           = null,
                             IReadOnlyList <Expression> args = null)
        {
            bool bOther = false;

            if (MethodCallParser.TryParse(e, out val, memberInfo, args))
            {
            }
            else if (MemberParser.TryParse(e, out val, memberInfo, args))
            {
            }
            else if (ConstParser.TryParse(e, out val, memberInfo, args))
            {
            }
            else if (NewArrayParser.TryParse(e, out val, memberInfo, args))
            {
                //解析出来之后,显示的数据依然是:Trim(value(System.Char[]))
                //在EF的Where中是不支持l.name.Trim('_')这样的操作的,只能支持:l.name.Trim()
                //但是还是需要进行解析,不然会交由OtherParser(DynamicParser)进行解析了
            }
            else if (UnaryParser.TryParse(e, out val, memberInfo, args))
            {
            }
            else
            {
                bOther = true;
                OtherParser.TryParse(e, out val, memberInfo, args);
            }

            //不是OtherParser解析的,而且val不为null,判断val的类型与Expression.Type的类型是否一致
            if (!bOther && val != null)
            {
                val = GetRightfulValue(e, val);
            }

            return(true);
        }
Beispiel #8
0
 private List <object> fetch(string value)
 {
     return(MethodCallParser.ToArguments <FakeEndpoint>(x => x.do_stuff(value)));
 }
Beispiel #9
0
 public void resolve_properties_for_one_parameter_passed_as_constant()
 {
     MethodCallParser.ToArguments <FakeEndpoint>(x => x.do_stuff("something"))
     .ShouldHaveTheSameElementsAs("something");
 }
Beispiel #10
0
 public void resolve_properties_for_multiple_parameters()
 {
     MethodCallParser.ToArguments <FakeEndpoint>(x => x.complex("else", 3))
     .ShouldHaveTheSameElementsAs("else", 3);
 }
Beispiel #11
0
 public static MethodCall <TReturn> Create <TClass, TReturn>(Expression <Func <TClass, TReturn> > expression) where TClass : class =>
 new MethodCall <TReturn>(MethodCallParser.Parse(expression).MethodInfo, new object[] {});
Beispiel #12
0
 internal AbstractMethodCallBuilder(LambdaExpression expression)
 {
     this.methodCallExpression = MethodCallParser.Parse(expression);
 }
Beispiel #13
0
        private void ParseMethodCalls(ParserOptions parserOptions)
        {
            for (int i = 0; i < parserOptions.SDSolution.Repositories.Count; i++)
            {
                var sdRepository = parserOptions.SDSolution.Repositories[i];
                ExecuteOnStepMessage(string.Format(_parserStrings.ParsingMethod, sdRepository.TargetFx.Name));
                ExecuteOnStepProgress((int)((double)i / parserOptions.SDSolution.Repositories.Count * 40) + 60);

                var methodParser = new MethodCallParser(parserOptions);
                methodParser.ParseMethodCalls();
            }
        }