public ConstantExpression AddTopConstant(int top, ODataPath path) { ConstantExpression topConstant = Expression.Constant(top, typeof(int)); ConstantNode topNode = OeCacheComparerParameterValues.CreateTopConstantNode(top, path); AddConstant(topConstant, topNode); return(topConstant); }
public ConstantExpression AddSkipTokenConstant(OeSkipTokenNameValue skipTokenNameValue, Type propertyType) { ConstantExpression skipTokenConstant = Expression.Constant(skipTokenNameValue.Value, propertyType); ConstantNode skipTokenNode = OeCacheComparerParameterValues.CreateSkipTokenConstantNode(skipTokenNameValue.Value, skipTokenNameValue.Name); AddConstant(skipTokenConstant, skipTokenNode); return(skipTokenConstant); }
public ConstantExpression AddSkipConstant(int skip, ODataPath path) { ConstantExpression skipConstant = Expression.Constant(skip, typeof(int)); ConstantNode skipNode = OeCacheComparerParameterValues.CreateSkipConstantNode(skip, path); AddConstant(skipConstant, skipNode); return(skipConstant); }
public void Test() { SelectTestDefinition[] requestMethodNames = SelectTestDefinition.GetSelectTestDefinitions(); requestMethodNames = requestMethodNames.Where(t => t.MethodName == "FilterEnum" || t.MethodName == "FilterEnumNull").ToArray(); var fixture = new DbFixtureInitDb(); var parser = new OeGetParser(fixture.OeDataAdapter, fixture.EdmModel); for (int i = 0; i < requestMethodNames.Length; i++) { OeQueryContext queryContext1 = parser.CreateQueryContext(fixture.ParseUri(requestMethodNames[i].Request), 0, false, OeMetadataLevel.Minimal); OeQueryContext queryContext2 = parser.CreateQueryContext(fixture.ParseUri(requestMethodNames[i].Request), 0, false, OeMetadataLevel.Minimal); var constantToParameterMapper = new FakeReadOnlyDictionary <ConstantNode, Db.OeQueryCacheDbParameterDefinition>(); if (queryContext1.ODataUri.Skip != null) { var constantNode = OeCacheComparerParameterValues.CreateSkipConstantNode((int)queryContext1.ODataUri.Skip.Value, queryContext1.ODataUri.Path); constantToParameterMapper.Add(constantNode, new Db.OeQueryCacheDbParameterDefinition("p_0", typeof(int))); } if (queryContext1.ODataUri.Top != null) { var constantNode = OeCacheComparerParameterValues.CreateTopConstantNode((int)queryContext1.ODataUri.Top.Value, queryContext1.ODataUri.Path); constantToParameterMapper.Add(constantNode, new Db.OeQueryCacheDbParameterDefinition($"p_{constantToParameterMapper.Count}", typeof(int))); } OeCacheContext cacheContext1 = queryContext1.CreateCacheContext(); OeCacheContext cacheContext2 = queryContext2.CreateCacheContext(); bool result = new OeCacheComparer(constantToParameterMapper, false).Compare(cacheContext1, cacheContext2); Assert.True(result); for (int j = i + 1; j < requestMethodNames.Length; j++) { queryContext2 = parser.CreateQueryContext(fixture.ParseUri(requestMethodNames[j].Request), 0, false, OeMetadataLevel.Minimal); constantToParameterMapper = new FakeReadOnlyDictionary <ConstantNode, Db.OeQueryCacheDbParameterDefinition>(); result = new OeCacheComparer(constantToParameterMapper, false).Compare(cacheContext1, cacheContext2); Assert.False(result); } } }
public void AddTopConstant(ConstantExpression topConstant, ODataPath path) { ConstantNode topNode = OeCacheComparerParameterValues.CreateTopConstantNode((int)topConstant.Value, path); AddConstant(topConstant, topNode); }
public void AddSkipTokenConstant(ConstantExpression skipTokenConstant, String propertyName) { ConstantNode skipTokenNode = OeCacheComparerParameterValues.CreateSkipTokenConstantNode(skipTokenConstant.Value, propertyName); AddConstant(skipTokenConstant, skipTokenNode); }
public void AddSkipConstant(ConstantExpression skipConstant, ODataPath path) { ConstantNode skipNode = OeCacheComparerParameterValues.CreateSkipConstantNode((int)skipConstant.Value, path); AddConstant(skipConstant, skipNode); }