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);
        }
Пример #2
0
        public void ProduceAllParameters()
        {
            var fakeQueryData = Builder.GetQueryData(
                Builder.Pack(
                    Builder.Pack <Clause>(
                        new EqualClause("Param1", "One"),
                        new NullClause("Param2")
                        ),
                    Builder.Pack <Clause>(
                        new BetweenClause("Param3", 3, 4),
                        new NullClause("Param4")
                        ),
                    Builder.Pack <Clause>(
                        new GreaterThanClause("Param5", 600)
                        )
                    )
                );

            var sut = new WhereGenerator(fakeQueryData);

            var parameters = sut.GetParameters();

            Approvals.VerifyAll(parameters, "parameter");
        }