예제 #1
0
        public void GetSql_NoPrefix_NoSuffix_NoSeparator_NoExpressions_ByDefault_ReturnsEmptyString()
        {
            // arrange
            var sut = new SqlClause();


            // act
            var result = sut.GetSql();


            // arrange
            result.Should().BeEmpty();
        }
예제 #2
0
        public void AddKeyed_NoPreviousExpressions_ReturnsCorrectSql()
        {
            // arrange
            var sut = new SqlClause();

            sut.Add("key", "a");


            // act
            var result = sut.GetSql();


            // arrange
            result.Should().Be("a");
        }
예제 #3
0
        public void ToEmptyClause_AddingEmptyClause_ReturnsEmptyString()
        {
            // arrange
            var sut = new SqlClause();

            var clause = new SqlClause();


            // act
            sut.Add(clause);
            var result = sut.GetSql();


            // arrange
            result.Should().BeEmpty();
        }
예제 #4
0
        public void AddKeyed_WithPreviousExpressionWithTheSameKey_ByDefault_AddsNothing()
        {
            // arrange
            var sut = new SqlClause();

            sut.Add("key", "a");


            // act
            sut.Add("key", "b");
            var result = sut.GetSql();


            // arrange
            result.Should().Be("a");
        }
        public void AddIsNotNull_ByDefault_AddsCorrectPredicate()
        {
            // arrange
            var sut = new SqlClause();


            // act
            sut.AddIsNotNull("Id");
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().Be("Id is not null");
            parameters.Should().BeEmpty();
        }
        public void AddNotBetween_BothParametersAreNull_AddsNothing()
        {
            // arrange
            var sut = new SqlClause();


            // act
            sut.AddNotBetween("Id", null, null);
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().Be(string.Empty);
            parameters.Should().BeEmpty();
        }
        public void AddNotIn_NoParameters_AddsNothing()
        {
            // arrange
            var sut = new SqlClause();


            // act
            sut.AddNotIn("Id");
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().Be(string.Empty);
            parameters.Should().BeEmpty();
        }
        public void AddNotIn_Null_AddsNothing()
        {
            // arrange
            var sut = new SqlClause();


            // act
            sut.AddNotIn("Id", (IEnumerable <IDbDataParameter>)null);
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().Be(string.Empty);
            parameters.Should().BeEmpty();
        }
        public void AddExists_Null_AddsNothing()
        {
            // arrange
            var sut = new SqlClause();


            // act
            sut.AddExists(null);
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().Be(string.Empty);
            parameters.Should().BeEmpty();
        }
예제 #10
0
        public void GetSql_NoPrefix_NoSuffix_NoSeparator_TwoExpressions_ReturnsCorrectSql()
        {
            // arrange
            var sut = new SqlClause();

            sut.Add("a");
            sut.Add("b");


            // act
            var result = sut.GetSql();


            // arrange
            result.Should().Be("ab");
        }
예제 #11
0
        public void AddKeyed_WithPreviousExpressionWithTheSameKey_WithOverwrite_OverwritesTheExpression()
        {
            // arrange
            var sut = new SqlClause();

            sut.Add("key", "a");


            // act
            sut.Add("key", "b", overwrite: true);
            var result = sut.GetSql();


            // arrange
            result.Should().Be("b");
        }
        public void AddPredicate_Null_AddsSqlAndParameters()
        {
            // arrange
            var sut = new SqlClause();


            // act
            sut.AddPredicate("Id", " ? ", null);
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().Be(string.Empty);
            parameters.Should().BeEmpty();
        }
예제 #13
0
        public void GetSql_WithPrefix_WithSuffix_WithSeparator_NoExpressions_ByDefault_ReturnsEmptyString()
        {
            // arrange
            var sut = new SqlClause();

            sut.Prefix = "prefix ";
            sut.ExpressionsSeparator = " and ";
            sut.Suffix = " suffix";


            // act
            var result = sut.GetSql();


            // arrange
            result.Should().BeEmpty();
        }
예제 #14
0
        public void GetSql_WithPrefix_WithSuffix_WithSeparator_NoExpressions_WithRenderIfEmpty_ReturnsEmptyString()
        {
            // arrange
            var sut = new SqlClause();

            sut.Prefix = "prefix ";
            sut.ExpressionsSeparator = " and ";
            sut.Suffix        = " suffix";
            sut.RenderIfEmpty = true;


            // act
            var result = sut.GetSql();


            // arrange
            result.Should().Be("prefix  suffix");
        }
예제 #15
0
        public void ToEmptyClause_AddingNotEmptyClause_ReturnsCorrectSql()
        {
            // arrange
            var sut = new SqlClause();

            var clause = new SqlClause();

            clause.Add("a");


            // act
            sut.Add(clause);
            var result = sut.GetSql();


            // arrange
            result.Should().Be("a");
        }
예제 #16
0
        public void GetSql_ToEmptyClause_ReturnsCorrectSql()
        {
            // arrange
            var sut = new SqlClause();

            var parameter = new SqlParameter {
                ParameterName = "@test"
            };


            // act
            sut.Add("a", parameter);

            var result = sut.GetSql();


            // arrange
            result.Should().Be("a");
        }
        public void AddNotIn_OneParameter_AddsCorrectPredicate()
        {
            // arrange
            var sut       = new SqlClause();
            var parameter = new SqlParameter {
                ParameterName = "@x"
            };


            // act
            sut.AddNotIn("Id", new[] { parameter }.Select(x => x));
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().Be("Id <> @x");
            parameters.Should().Equal(parameter);
        }
        public void AddNotEquals_ByDefault_AddsCorrectPredicate()
        {
            // arrange
            var sut       = new SqlClause();
            var parameter = new SqlParameter {
                ParameterName = "@x"
            };


            // act
            sut.AddNotEquals("Id", parameter);
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().Be("Id <> @x");
            parameters.Should().Equal(parameter);
        }
        public void AddNotBetween_TheSecondParameterIsNull_AddsNothing()
        {
            // arrange
            var sut       = new SqlClause();
            var parameter = new SqlParameter {
                ParameterName = "@x"
            };


            // act
            sut.AddNotBetween("Id", parameter, null);
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().Be("Id < @x");
            parameters.Should().Equal(parameter);
        }
        public void AddNotBetween_TheFirstParameterIsNull_AddsNothing()
        {
            // arrange
            var sut        = new SqlClause();
            var parameter2 = new SqlParameter {
                ParameterName = "@x2"
            };


            // act
            sut.AddNotBetween("Id", null, parameter2);
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().Be("Id > @x2");
            parameters.Should().Equal(parameter2);
        }
예제 #21
0
        public void GetSql_WithPrefix_WithSuffix_WithSeparator_TwoExpressions_ReturnsCorrectSql()
        {
            // arrange
            var sut = new SqlClause();

            sut.Prefix = "prefix ";
            sut.ExpressionsSeparator = " and ";
            sut.Suffix = " suffix";
            sut.Add("a");
            sut.Add("b");


            // act
            var result = sut.GetSql();


            // arrange
            result.Should().Be("prefix a and b suffix");
        }
예제 #22
0
        public void WithKey_HasExpressionWithTheSameKey_ByDefault_AddsNothing()
        {
            // arrange
            var sut = new SqlClause();

            sut.Add("key", "a");

            var clause = new SqlClause();

            clause.Add("b");


            // act
            sut.Add("key", clause);
            var result = sut.GetSql();


            // arrange
            result.Should().Be("a");
        }
예제 #23
0
        public void WithKey_HasExpressionWithTheSameKey_WithOverwrite_OverwritesTheExpression()
        {
            // arrange
            var sut = new SqlClause();

            sut.Add("key", "a");

            var clause = new SqlClause();

            clause.Add("b");


            // act
            sut.Add("key", clause, overwrite: true);
            var result = sut.GetSql();


            // arrange
            result.Should().Be("b");
        }
예제 #24
0
        public void GetSql_WithKey_HasExpressionWithTheSameKey_ByDefault_AddsNothing()
        {
            // arrange
            var sut = new SqlClause();

            sut.Add("key", "a");

            var parameter = new SqlParameter {
                ParameterName = "@test"
            };


            // act
            sut.Add("key", "b", parameter);

            var result = sut.GetSql();


            // arrange
            result.Should().Be("a");
        }
예제 #25
0
        public void GetSql_WithKey_HasExpressionWithTheSameKey_WithOverwrite_OverwritesTheExpression()
        {
            // arrange
            var sut = new SqlClause();

            sut.Add("key", "a");

            var parameter = new SqlParameter {
                ParameterName = "@test"
            };


            // act
            sut.Add("key", "b", parameter, overwrite: true);

            var result = sut.GetSql();


            // arrange
            result.Should().Be("b");
        }
        public void AddNotBetween_ByDefault_AddsCorrectPredicate()
        {
            // arrange
            var sut       = new SqlClause();
            var parameter = new SqlParameter {
                ParameterName = "@x"
            };
            var parameter2 = new SqlParameter {
                ParameterName = "@x2"
            };


            // act
            sut.AddNotBetween("Id", parameter, parameter2);
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().Be("Id not between @x and @x2");
            parameters.Should().Equal(parameter, parameter2);
        }
        public void AddNotIn_TwoParameters_AddsCorrectPredicate()
        {
            // arrange
            var sut       = new SqlClause();
            var parameter = new SqlParameter {
                ParameterName = "@x"
            };
            var parameter2 = new SqlParameter {
                ParameterName = "@x2"
            };


            // act
            sut.AddNotIn("Id", parameter, parameter2);
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().Be("Id not in (@x, @x2)");
            parameters.Should().Equal(parameter, parameter2);
        }
        public void AddNotExists_ByDefault_AddsCorrectPredicate()
        {
            // arrange
            var sut       = new SqlClause();
            var parameter = new SqlParameter {
                ParameterName = "@x"
            };

            var clause = new SqlClause("select * from Table2");

            clause.Add(parameter);


            // act
            sut.AddNotExists(clause);
            var sql        = sut.GetSql();
            var parameters = sut.GetParameters();


            // assert
            sql.Should().Be("not exists (select * from Table2)");
            parameters.Should().Equal(parameter);
        }