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); }
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"); }