public void ProduceEmptyStringForNoClauses() { var fakeQueryData = Builder.GetQueryData(); var sut = new WhereGenerator(fakeQueryData); Assert.Equal("", sut.ToString()); }
public void ProduceAnAndOfOrStatementsForUnbalancedMultipleClauses() { var clauses1 = Builder.Pack <Clause>(new EqualClause("PropOne", IGNORE_ME), new NullClause("PropNull")); var clauses2 = Builder.Pack <Clause>(new BetweenClause("PropTwo", IGNORE_ME, IGNORE_ME)); var fakeQueryData = Builder.GetQueryData(Builder.Pack(clauses1, clauses2)); var sut = new WhereGenerator(fakeQueryData); Assert.Equal("WHERE ([PropOne] = @PropOne_EQUAL OR [PropNull] IS NULL) AND ([PropTwo] BETWEEN @PropTwo_START AND @PropTwo_END)", sut.ToString()); }
public void ProduceAnStatementForAnotherSingleClause() { var doublePack = Builder.DoublePack <Clause>( new EqualClause("Another_Good_Property", IGNORE_ME) ); var fakeQueryData = Builder.GetQueryData(doublePack); var sut = new WhereGenerator(fakeQueryData); Assert.Equal("WHERE [Another_Good_Property] = @Another_Good_Property_EQUAL", sut.ToString()); }
public void ProduceAnOrStatementForMultipleClauses() { var clauses = Builder.DoublePack <Clause>( new EqualClause("PropOne", IGNORE_ME), new BetweenClause("PropTwo", IGNORE_ME, IGNORE_ME) ); var fakeQueryData = Builder.GetQueryData(clauses); var sut = new WhereGenerator(fakeQueryData); Assert.Equal("WHERE [PropOne] = @PropOne_EQUAL OR [PropTwo] BETWEEN @PropTwo_START AND @PropTwo_END", sut.ToString()); }
public void ProduceAnEqualStatementForSingleClause() { var clauses = Builder.DoublePack <Clause>( new EqualClause("Some_Good_Property", IGNORE_ME) ); var fakeQueryData = Builder.GetQueryData(clauses); var queryData = fakeQueryData; var sut = new WhereGenerator(queryData); Assert.Equal("WHERE [Some_Good_Property] = @Some_Good_Property_EQUAL", 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); }
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"); }