コード例 #1
0
        public void CalculateWhereConditionsLinqWhereQueryEngineContainedTest()
        {
            // Arrange
            var whereQueryEngine = new WhereQueryEngine(new WhereQueryEngineOptions());
            var queryParameters  = new QueryParameters
            {
                WhereQueryProperties = new List <WhereQueryProperty>
                {
                    new WhereQueryProperty
                    {
                        Operator     = CompareOperator.ContainedIn,
                        PropertyName = nameof(Alpha.Gamma),
                        SearchTerm   = "Black|White"
                    },
                }
            };

            var whereConditions = whereQueryEngine.BuildQueryExpressions <Alpha>(queryParameters);


            // Act
            var result = whereConditions.Data.CalculateWhereConditions();

            // Assert
            result.QueryParameter.Should().HaveCount(1);
            result.QueryParameter.Keys.First().Should().Be("p0Array");
            result.QueryParameter.Values.First().Should().BeOfType(typeof(List <string>));
            (result.QueryParameter.Values.First() as List <string>)[0].Should().Be("Black");
            (result.QueryParameter.Values.First() as List <string>)[1].Should().Be("White");

            result.Sql.Should().Be($"Gamma IN @p0Array{Environment.NewLine}");
        }
コード例 #2
0
        public void CalculateWhereConditionsLinqWhereQueryEngineEnumLessThanOrEqualTest()
        {
            // Arrange
            var whereQueryEngine = new WhereQueryEngine(new WhereQueryEngineOptions());
            var queryParameters  = new QueryParameters
            {
                WhereQueryProperties = new List <WhereQueryProperty>
                {
                    new WhereQueryProperty
                    {
                        Operator     = CompareOperator.LessThanOrEqual,
                        PropertyName = nameof(Alpha.Delta),
                        SearchTerm   = Color.White.ToString()
                    },
                }
            };

            var whereConditions = whereQueryEngine.BuildQueryExpressions <Alpha>(queryParameters);


            // Act
            var result = whereConditions.Data.CalculateWhereConditions();

            // Assert
            result.QueryParameter.Should().HaveCount(2);
            result.QueryParameter.Keys.First().Should().Be("p0");
            result.QueryParameter.Keys.Last().Should().Be("p1");
            result.QueryParameter.Values.First().Should().Be(Color.White);
            result.QueryParameter.Values.Last().Should().Be(0);

            result.Sql.Should().Be($"((CASE WHEN {nameof(Alpha.Delta)} = @p0 THEN 0 WHEN {nameof(Alpha.Delta)} > @p0 THEN 1 ELSE -1 END) <= @p1){Environment.NewLine}");
        }
コード例 #3
0
ファイル: IEnumerableExtensions.cs プロジェクト: eshava/storm
        public static WhereQueryResult AddWhereConditionsToQuery <T>(this IEnumerable <Expression <Func <T, bool> > > queryConditions, string sqlQuery, WhereQuerySettings settings = null) where T : class
        {
            var whereQueryEngine = new WhereQueryEngine();

            return(whereQueryEngine.AddWhereConditionsToQuery(queryConditions, sqlQuery, settings));
        }
コード例 #4
0
ファイル: IEnumerableExtensions.cs プロジェクト: eshava/storm
        public static WhereQueryResult CalculateWhereConditions <T>(this IEnumerable <Expression <Func <T, bool> > > queryConditions, WhereQuerySettings settings = null) where T : class
        {
            var whereQueryEngine = new WhereQueryEngine();

            return(whereQueryEngine.CalculateWhereConditions(queryConditions, settings));
        }
コード例 #5
0
 public void Setup()
 {
     _classUnderTest = new WhereQueryEngine();
 }