Ejemplo n.º 1
0
        public void GenerateOrderByColumnWithEmptySortProperty()
        {
            var queryData = Builder.BuildQueryData(Builder.Pack("A_Select_Column"), sort: "");
            var sut       = new OrderByGenerator(queryData);

            Assert.Equal(string.Empty, sut.ToString());
        }
Ejemplo n.º 2
0
        public void GenerateOrderByColumnWithDirectionDescending()
        {
            var queryData = Builder.BuildQueryData(Builder.Pack("A_Select_Column"), sort: "Some_Stupid_Sort_Column", direction: "desc");
            var sut       = new OrderByGenerator(queryData);

            Assert.Equal("ORDER BY [Some_Stupid_Sort_Column_Cleaned] DESC", sut.ToString());
        }
Ejemplo n.º 3
0
        public void GenerateOrderByColumnWithDirectionAscending()
        {
            var queryData = Builder.BuildQueryData(Builder.Pack("A_Select_Column"), sort: "Some_New_Sort_Column", direction: "asc");
            var sut       = new OrderByGenerator(queryData);

            Assert.Equal("ORDER BY CASE WHEN [Some_New_Sort_Column_Cleaned] IS NULL THEN 1 ELSE 0 END, [Some_New_Sort_Column_Cleaned]", sut.ToString());
        }
Ejemplo n.º 4
0
        public void GenerateAnotherOrderByColumnWithoutDirection()
        {
            var queryData = Builder.BuildQueryData(Builder.Pack("A_Select_Column"), sort: "Another_Sort_Column");
            var sut       = new OrderByGenerator(queryData);

            Assert.Equal("ORDER BY CASE WHEN [Another_Sort_Column_Cleaned] IS NULL THEN 1 ELSE 0 END, [Another_Sort_Column_Cleaned]", sut.ToString());
        }
Ejemplo n.º 5
0
        public void GenerateOrderByColumnWithoutDirectionDefaultsToAsc()
        {
            const string field      = "A_Select_Column";
            const string sortColumn = "A_Sort_Column";

            var queryData = Builder.BuildQueryData(Builder.Pack(field), sort: sortColumn);
            var sut       = new OrderByGenerator(queryData);

            Assert.Equal("ORDER BY CASE WHEN [A_Sort_Column_Cleaned] IS NULL THEN 1 ELSE 0 END, [A_Sort_Column_Cleaned]", sut.ToString());
        }
        public virtual (string, IEnumerable <(string, object)> parameter) BuildQuery(Query query, IValidColumns validColumns, string tableName)
        {
            var queryData        = new QueryData(query, validColumns, new ClauseFactory(validColumns), tableName);
            var whereGenerator   = new WhereGenerator(queryData);
            var groupByGenerator = new GroupByGenerator(queryData);
            var orderByGenerator = new OrderByGenerator(queryData);
            var parameter        = whereGenerator.GetParameters();

            return(
                new SqlQueryGenerator(
                    new SelectGenerator(queryData),
                    whereGenerator,
                    groupByGenerator,
                    orderByGenerator
                    ).ToString()
                , parameter);
        }