コード例 #1
0
        public void SqlClauseBuilderSimpleWithConst()
        {
            // Arrange
            const string expectedSql = "(Id = '5')";
            Expression <Func <User, bool> > clause = u => u.Id == 5;

            var sqlClauseBuilder = new SqlClauseBuilder();

            // Act
            string actualSql = sqlClauseBuilder.Build(clause.Body);

            // Assert
            Assert.Equal(expectedSql, actualSql);
        }
コード例 #2
0
        public void SqlClauseBuilderPropertyIsNullConst()
        {
            // Arrange
            string expectedSql = "(Name IS NULL)";

            Expression <Func <User, bool> > clause = u => u.Name == null;

            var sqlClauseBuilder = new SqlClauseBuilder();

            // Act
            string actualSql = sqlClauseBuilder.Build(clause.Body);

            // Assert
            Assert.Equal(expectedSql, actualSql);
        }
コード例 #3
0
        public void SqlClauseBuilderNotProperty()
        {
            // Arrange
            const string expectedSql = "(IsDisabled = 0)";

            Expression <Func <User, bool> > clause = u => !u.IsDisabled;

            var sqlClauseBuilder = new SqlClauseBuilder();

            // Act
            string actualSql = sqlClauseBuilder.Build(clause.Body);

            // Assert
            Assert.Equal(expectedSql, actualSql);
        }
コード例 #4
0
        public void SqlClauseBuilderBooleanClauseWithConst()
        {
            // Arrange
            const string expectedSql = "(IsDisabled != 1)";

            Expression <Func <User, bool> > clause = u => u.IsDisabled != true;

            var sqlClauseBuilder = new SqlClauseBuilder();

            // Act
            string actualSql = sqlClauseBuilder.Build(clause.Body);

            // Assert
            Assert.Equal(expectedSql, actualSql);
        }
コード例 #5
0
        public void SqlClauseBuilderSimpleWithConvertFromEnum()
        {
            // Arrange
            var    userType    = UserType.Reader;
            string expectedSql = $"(Type = {(byte)UserType.Reader})";

            Expression <Func <User, bool> > clause = u => u.Type == userType;

            var sqlClauseBuilder = new SqlClauseBuilder();

            // Act
            string actualSql = sqlClauseBuilder.Build(clause.Body);

            // Assert
            Assert.Equal(expectedSql, actualSql);
        }
コード例 #6
0
        public void SqlClauseBuilderSimpleWithVaue()
        {
            // Arrange
            string name        = "some Name";
            string expectedSql = $"(Name = '{name}')";

            Expression <Func <User, bool> > clause = u => u.Name == name;

            var sqlClauseBuilder = new SqlClauseBuilder();

            // Act
            string actualSql = sqlClauseBuilder.Build(clause.Body);

            // Assert
            Assert.Equal(expectedSql, actualSql);
        }
コード例 #7
0
        public void SqlClauseBuilderOrClause()
        {
            // Arrange
            const int id          = 42;
            string    expectedSql = $"((Id = '{id}') OR (Name = 'some Value'))";

            Expression <Func <User, bool> > clause = u => u.Id == id || u.Name == "some Value";

            var sqlClauseBuilder = new SqlClauseBuilder();

            // Act
            string actualSql = sqlClauseBuilder.Build(clause.Body);

            // Assert
            Assert.Equal(expectedSql, actualSql);
        }
コード例 #8
0
        public void SqlClauseBuilderNotExpression()
        {
            // Arrange
            const int id          = 42;
            string    expectedSql = $"(NOT (Id > '{id}'))";

            Expression <Func <User, bool> > clause = u => !(u.Id > id);

            var sqlClauseBuilder = new SqlClauseBuilder();

            // Act
            string actualSql = sqlClauseBuilder.Build(clause.Body);

            // Assert
            Assert.Equal(expectedSql, actualSql);
        }
コード例 #9
0
        public void SqlClauseBuilderBooleanClauseWithValue()
        {
            // Arrange
            const bool isDisabled  = false;
            string     expectedSql = $"(IsDisabled != {(isDisabled ? "1" : "0")})";

            Expression <Func <User, bool> > clause = u => u.IsDisabled != isDisabled;

            var sqlClauseBuilder = new SqlClauseBuilder();

            // Act
            string actualSql = sqlClauseBuilder.Build(clause.Body);

            // Assert
            Assert.Equal(expectedSql, actualSql);
        }
コード例 #10
0
        public void SqlClauseBuilderNotClause()
        {
            // Arrange
            int    id          = 42;
            string expectedSql = $"(Id != '{id}')";

            Expression <Func <User, bool> > clause = u => u.Id != id;

            var sqlClauseBuilder = new SqlClauseBuilder();

            // Act
            string actualSql = sqlClauseBuilder.Build(clause.Body);

            // Assert
            Assert.Equal(expectedSql, actualSql);
        }
コード例 #11
0
        public void SqlClauseBuilderAndOrClause()
        {
            // Arrange
            const int id          = 42;
            var       now         = DateTime.Now;
            string    expectedSql = $"((Id = '{id}') OR ((Name = 'some Value') AND (Created < '{now.ToString("yyyy.MM.dd HH:mm:ss")}')))";

            Expression <Func <User, bool> > clause = u => u.Id == id || (u.Name == "some Value" && u.Created < now);

            var sqlClauseBuilder = new SqlClauseBuilder();

            // Act
            string actualSql = sqlClauseBuilder.Build(clause.Body);

            // Assert
            Assert.Equal(expectedSql, actualSql);
        }