public void Format_WhenSingleNode_ExpectWhereStatement() { // Arrange var mockEqualsFormatter = new Mock <IWhereOperatorFormatter <EqualsOperator> >(); var mockLessThanFormatter = new Mock <IWhereOperatorFormatter <LessThanOperator> >(); var mockGreaterThanFormatter = new Mock <IWhereOperatorFormatter <GreaterThanOperator> >(); var mockRangeFormatter = new Mock <IWhereOperatorFormatter <RangeOperator> >(); mockEqualsFormatter .Setup(r => r.Format(It.IsAny <EqualsOperator>(), It.IsAny <int>())) .Returns(new SqlDataResponse { Sql = "ColumnName = @ColumnName1", LastSuffix = 1, Params = new List <SqlWhereParam> { new SqlWhereParam { Value = "bob", VarName = "ColumnName1" } }, }); var whereFormatter = new WhereFormatter( mockEqualsFormatter.Object, mockLessThanFormatter.Object, mockGreaterThanFormatter.Object, mockRangeFormatter.Object); var op = new EqualsOperator { Name = "ColumnName", IsNot = false, Statement = "ColumnName:bob", Value = "bob", }; var whereNode = new WhereNode { Statement = new WhereStatement { Value = op }, }; // Act var stopwatch = Stopwatch.StartNew(); var sqlDataResponse = whereFormatter.Format(whereNode); stopwatch.Stop(); // Assert this.WriteTimeElapsed(stopwatch); Assert.That(sqlDataResponse, Is.Not.Null); Assert.That(sqlDataResponse.Sql, Is.EqualTo($"WHERE ColumnName = @ColumnName1{Environment.NewLine}")); Assert.That(sqlDataResponse.Params.First(r => r.VarName == "ColumnName1").Value, Is.EqualTo("bob")); }
public void Format_WhenBinaryNode_ExpectWhereStatement() { // Arrange var equalsFormatter = new EqualsFormatter(); var lessThanFormatter = new LessThanFormatter(); var greaterThanFormatter = new GreaterThanFormatter(); var rangeFormatter = new RangeFormatter(); var whereFormatter = new WhereFormatter( equalsFormatter, lessThanFormatter, greaterThanFormatter, rangeFormatter); var whereNode2 = new WhereNode { Statement = new WhereStatement { Value = new EqualsOperator { Name = "FirstName", IsNot = false, Statement = "FirstName:asd", Value = "asd", }, }, }; var whereNode = new WhereNode { Statement = new WhereStatement { Value = new EqualsOperator { Name = "ColumnName", IsNot = false, Statement = "ColumnName:bob", Value = "bob", }, }, Conjunctive = Conjunctives.And, Next = whereNode2, }; // Act var stopwatch = Stopwatch.StartNew(); var sqlDataResponse = whereFormatter.Format(whereNode); stopwatch.Stop(); // Assert this.WriteTimeElapsed(stopwatch); Console.WriteLine(sqlDataResponse.Sql); }
/// <summary> /// Creates this instance. /// </summary> /// <returns>The <see cref="IFormatter"/>.</returns> public static IFormatterFactory Create() { var orderByFormatter = new OrderByFormatter(); var pageFormatter = new PostgresPageFormatter(); var equalsFormatter = new EqualsFormatter(); var lessThanFormatter = new LessThanFormatter(); var greaterThanFormatter = new GreaterThanFormatter(); var rangeFormatter = new RangeFormatter(); var whereFormatter = new WhereFormatter( equalsFormatter, lessThanFormatter, greaterThanFormatter, rangeFormatter); var standardFormatter = new Formatter(orderByFormatter, pageFormatter, whereFormatter); var countCteFormatter = new CountCteFormatter(orderByFormatter, pageFormatter, whereFormatter); return(new FormatterFactory(standardFormatter, countCteFormatter)); }