public void CachedExpression_Can_Verify_Path_StartsWith_Predicate_In_Same_Result()
        {
            // Arrange

            // use a single cached expression for multiple expressions and ensure the correct output
            // is done for both of them.
            var cachedExpression = new CachedExpression();

            Expression <Func <IContent, bool> > predicate1 = content => content.Path.StartsWith("-1");

            cachedExpression.Wrap(predicate1);
            var modelToSqlExpressionHelper1 = new ModelToSqlExpressionVisitor <IContent>(SqlContext.SqlSyntax, Mappers);
            var result1 = modelToSqlExpressionHelper1.Visit(cachedExpression);

            Assert.AreEqual("upper([umbracoNode].[path]) LIKE upper(@0)", result1);
            Assert.AreEqual("-1%", modelToSqlExpressionHelper1.GetSqlParameters()[0]);

            Expression <Func <IContent, bool> > predicate2 = content => content.Path.StartsWith("-1,123,97");

            cachedExpression.Wrap(predicate2);
            var modelToSqlExpressionHelper2 = new ModelToSqlExpressionVisitor <IContent>(SqlContext.SqlSyntax, Mappers);
            var result2 = modelToSqlExpressionHelper2.Visit(cachedExpression);

            Assert.AreEqual("upper([umbracoNode].[path]) LIKE upper(@0)", result2);
            Assert.AreEqual("-1,123,97%", modelToSqlExpressionHelper2.GetSqlParameters()[0]);
        }
示例#2
0
        public void ShouldCompileExpression()
        {
            Expression <Func <int, int> > expression = i => i + i;

            var subject = CachedExpression.From(expression);

            Assert.Equal(2, subject.Compiled(1));
        }
        public ModelToSqlExpressionHelperBenchmarks()
        {
            var contentMapper = new ContentMapper(MockSqlContext(), CreateMaps());

            _cachedExpression = new CachedExpression();
            var mapperCollection = new Mock <IMapperCollection>();

            mapperCollection.Setup(x => x[It.IsAny <Type>()]).Returns(contentMapper);
            _mapperCollection = mapperCollection.Object;
        }
示例#4
0
        public void ShouldCastToLambdaExpression()
        {
            Expression <Func <int, int> > expected = i => i + i;

            var subject = CachedExpression.From(expected);

            var actual = (LambdaExpression)subject;

            Assert.Equal(expected, actual);
        }
示例#5
0
        public ModelToSqlExpressionHelperBenchmarks()
        {
            var contentMapper = new ContentMapper(_syntaxProvider);

            contentMapper.BuildMap();
            _cachedExpression = new CachedExpression();
            var mappingResolver = new Mock <MappingResolver>();

            mappingResolver.Setup(resolver => resolver.ResolveMapperByType(It.IsAny <Type>())).Returns(contentMapper);
            _mappingResolver = mappingResolver.Object;
        }
示例#6
0
        public ValidationError(IRule rule, CachedExpression cachedExpression, object[] validationArguments, object value)
        {
            if (validationArguments == null) throw new System.ArgumentNullException("validationArguments");
            if (value == null) throw new System.ArgumentNullException("value");
            if (cachedExpression == null) throw new System.ArgumentNullException("cachedExpression");
            if (rule == null) throw new System.ArgumentNullException("rule");

            _rule = rule;
            _cachedExpression = cachedExpression;
            _validationArguments = validationArguments;
            _value = value;
        }
示例#7
0
        public ValidationError(IRule rule, CachedExpression cachedExpression, object[] validationArguments, object value)
        {
            if (validationArguments == null)
            {
                throw new System.ArgumentNullException("validationArguments");
            }
            if (value == null)
            {
                throw new System.ArgumentNullException("value");
            }
            if (cachedExpression == null)
            {
                throw new System.ArgumentNullException("cachedExpression");
            }
            if (rule == null)
            {
                throw new System.ArgumentNullException("rule");
            }

            _rule                = rule;
            _cachedExpression    = cachedExpression;
            _validationArguments = validationArguments;
            _value               = value;
        }