public void AddIn_NoParameters_AddsNothing()
        {
            // arrange
            var sut = new SqlClause();


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


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


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


            // assert
            sql.Should().Be(string.Empty);
            parameters.Should().BeEmpty();
        }
        public void AddIn_OneParameter_AddsCorrectPredicate()
        {
            // arrange
            var sut       = new SqlClause();
            var parameter = new SqlParameter {
                ParameterName = "@x"
            };


            // act
            sut.AddIn("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 AddIn_TwoParameters_AddsCorrectPredicate()
        {
            // arrange
            var sut       = new SqlClause();
            var parameter = new SqlParameter {
                ParameterName = "@x"
            };
            var parameter2 = new SqlParameter {
                ParameterName = "@x2"
            };


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


            // assert
            sql.Should().Be("Id in (@x, @x2)");
            parameters.Should().Equal(parameter, parameter2);
        }