コード例 #1
0
        public void Format_WhenIsWildcardSuffix_ExpectLikeSql()
        {
            // Arrange
            var equalsFormatter = new EqualsFormatter();

            var node = new EqualsOperator
            {
                Name      = "ColumnName",
                IsNot     = false,
                Value     = "bob*",
                Statement = "ColumnName:bob*",
            };

            // Act
            var stopwatch       = Stopwatch.StartNew();
            var sqlDataResponse = equalsFormatter.Format(node, 0);

            stopwatch.Stop();

            // Assert
            this.WriteTimeElapsed(stopwatch);

            Assert.That(sqlDataResponse.Sql, Is.EqualTo("ColumnName LIKE @ColumnName0"));
            Assert.That(sqlDataResponse.Params.First().Value, Is.EqualTo("bob%"));
        }
コード例 #2
0
        public void Format_WhenWildcardWithNot_ExpectNotLikeSql()
        {
            // Arrange
            var equalsFormatter = new EqualsFormatter();

            var node = new EqualsOperator
            {
                Name      = "ColumnName",
                IsNot     = true,
                Value     = @"*bob",
                Statement = @"ColumnName:*bob",
            };

            // Act
            var stopwatch       = Stopwatch.StartNew();
            var sqlDataResponse = equalsFormatter.Format(node, 0);

            stopwatch.Stop();

            // Assert
            this.WriteTimeElapsed(stopwatch);

            Assert.That(sqlDataResponse.Sql, Is.EqualTo("ColumnName NOT LIKE @ColumnName0"));
            Assert.That(sqlDataResponse.Params.First().Value, Is.EqualTo(@"%bob"));
        }
コード例 #3
0
        public void Format_WhenStringNotComparison_ExpectCorrectSql()
        {
            // Arrange
            var equalsFormatter = new EqualsFormatter();

            var node = new EqualsOperator
            {
                Name      = "ColumnName",
                IsNot     = true,
                Value     = "bob",
                Statement = "ColumnName:bob",
            };

            // Act
            var stopwatch       = Stopwatch.StartNew();
            var sqlDataResponse = equalsFormatter.Format(node, 0);

            stopwatch.Stop();

            // Assert
            this.WriteTimeElapsed(stopwatch);

            Assert.That(sqlDataResponse.Sql, Is.EqualTo("ColumnName <> @ColumnName0"));
            Assert.That(sqlDataResponse.Params.First().Value, Is.EqualTo("bob"));
        }
コード例 #4
0
        public void Format_WhenSearchForWordNull_ExpectStandardEquals()
        {
            // Arrange
            var equalsFormatter = new EqualsFormatter();

            var node = new EqualsOperator
            {
                Name      = "ColumnName",
                IsNot     = false,
                Value     = "\"NULL\"",
                Statement = "ColumnName:\"NULL\"",
            };

            // Act
            var stopwatch       = Stopwatch.StartNew();
            var sqlDataResponse = equalsFormatter.Format(node, 0);

            stopwatch.Stop();

            // Assert
            this.WriteTimeElapsed(stopwatch);

            Assert.That(sqlDataResponse.Sql, Is.EqualTo("ColumnName = @ColumnName0"));
            Assert.That(sqlDataResponse.Params.First().Value, Is.EqualTo(@"NULL"));
        }
コード例 #5
0
        public void Format_WhenSearchForNull_ExpectIsNullSql()
        {
            // Arrange
            var equalsFormatter = new EqualsFormatter();

            var node = new EqualsOperator
            {
                Name      = "ColumnName",
                IsNot     = false,
                Value     = @"NULL",
                Statement = @"ColumnName:NULL",
            };

            // Act
            var stopwatch       = Stopwatch.StartNew();
            var sqlDataResponse = equalsFormatter.Format(node, 0);

            stopwatch.Stop();

            // Assert
            this.WriteTimeElapsed(stopwatch);

            Assert.That(sqlDataResponse.Sql, Is.EqualTo("ColumnName IS NULL"));
            Assert.That(sqlDataResponse.Params.Any(), Is.False);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
        /// <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));
        }