public void Format_WhenQueryIn_ExpectSqlFormatted() { // Arrange var mockOrderByFormatter = new Mock <IOrderByFormatter>(); var mockPageFormatter = new Mock <IPageFormatter>(); var mockWhereFormatter = new Mock <IWhereFormatter>(); var mockWhereParser = new Mock <IWhereParser>(); var mockSelectParser = new Mock <ISelectParser>(); mockWhereFormatter.Setup(r => r.Format(It.IsAny <WhereNode>())).Returns(new SqlDataResponse { Sql = "WHERE col1 = @col1", }); mockOrderByFormatter.Setup(r => r.Format(It.IsAny <List <OrderByNode> >())).Returns("ORDER BY col1 asc"); mockPageFormatter.Setup(r => r.Format(It.IsAny <PageNode>())).Returns(new SqlDataResponse { Sql = "OFFSET @offset LIMIT @limit", }); mockSelectParser.Setup(r => r.Parse(It.IsAny <string>(), It.IsAny <char>())).Returns(new SelectNode { SelectAll = true, SelectColumns = new List <string> { "col_1", "col_2" }, }); var countCteFormatter = new CountCteFormatter( mockOrderByFormatter.Object, mockPageFormatter.Object, mockWhereFormatter.Object); var query = new Query(mockWhereParser.Object, mockSelectParser.Object); const string From = "table"; // Act var stopwatch = Stopwatch.StartNew(); var sqlEntity = countCteFormatter.Format(query, From); stopwatch.Stop(); // Assert this.WriteTimeElapsed(stopwatch); Console.WriteLine(sqlEntity.Sql); Assert.That(sqlEntity, Is.Not.Null); }
/// <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)); }