Beispiel #1
0
        public void ResolveWhere_Tests()
        {
            var list = new[]
            {
                new {
                    SQL    = _resolver.ResolveWhere <User>(x => x.Id == 5),
                    Result = "([Id] = 5)"
                },
                new {
                    SQL    = _resolver.ResolveWhere <User>(x => 5 == x.Id),
                    Result = "(5 = [Id])"
                },
                new {
                    SQL = _resolver.ResolveWhere <User>(x => 5 == 8),
                    // TODO: This sould not be allowed => WHERE 0
                    Result = "0" // 5 == 8 is False, False => 0
                },
                new {
                    SQL    = _resolver.ResolveWhere <User>(x => x.Name == x.Surname),
                    Result = "([Name] = [Surname])"
                },
                new {
                    SQL    = _resolver.ResolveWhere <User>(x => x.Id == 5 && x.Email == "foo"),
                    Result = "(([Id] = 5) AND ([Email] = 'foo'))"
                },
                new {
                    SQL    = _resolver.ResolveWhere <User>(x => (x.Id == 5 && x.Email == "foo") || x.Active == true),
                    Result = "((([Id] = 5) AND ([Email] = 'foo')) OR ([Active] = 1))"
                },
                new {
                    SQL    = _resolver.ResolveWhere <User>(x => x.Id == 5 && (x.Email == "foo" || x.Active == true)),
                    Result = "(([Id] = 5) AND (([Email] = 'foo') OR ([Active] = 1)))"
                },
            };

            foreach (var item in list)
            {
                Assert.Equal(item.SQL, item.Result);
            }
        }