Exemplo n.º 1
0
        public void Test_1()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [a3].[a],[a1].[b1],[a2].[b2] ");
            result.AppendLine("From [b] As [a2] ");
            result.Append("Join [c] As [a3] On [a2].[d]=[a3].[e]");

            //执行
            _builder.Select("a,a1.b1,[a2].[b2]", "a3")
            .From("b", "a2")
            .Join("c", "a3").On("a2.d", "a3.[e]");

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemplo n.º 2
0
        public void Test_Or_2()
        {
            //结果
            var result = new Str();

            result.Append("Where [Email] In (@_p_0,@_p_1)");

            //执行
            var list = new List <string> {
                "a", "b"
            };

            _clause.Or <Sample>(t => list.Contains(t.Email));

            //验证
            Assert.Equal(result.ToString(), GetSql());
        }
Exemplo n.º 3
0
        public void TestOn_2()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select `a` ");
            result.AppendLine("From `Sample` As `b` ");
            result.Append("Join `Sample2` As `c` On `b`.`IntValue`<>`c`.`IntValue`");

            //执行
            _builder.Select("a")
            .From <Sample>("b")
            .Join <Sample2>("c").On <Sample, Sample2>(t => t.IntValue, t => t.IntValue, Operator.NotEqual);

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemplo n.º 4
0
        public void Test_In_1()
        {
            //结果
            var result = new Str();

            result.Append("Where [user].[Email] In (@_p_0,@_p_1)");

            //执行
            var list = new List <string> {
                "a", "b"
            };

            _clause.In("user.Email", list);

            //验证
            Assert.Equal(result.ToString(), GetSql());
        }
Exemplo n.º 5
0
        public void Test_NotIn_2()
        {
            //结果
            var result = new Str();

            result.Append("Where [Email] Not In (@_p_0,@_p_1)");

            //执行
            var list = new List <string> {
                "a", "b"
            };

            _clause.NotIn <Sample>(t => t.Email, list);

            //验证
            Assert.Equal(result.ToString(), GetSql());
        }
Exemplo n.º 6
0
        public void Test_RightJoin_5()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [a] ");
            result.AppendLine("From [b] ");
            result.Append("Right Join c");

            //执行
            _builder.Select("a")
            .From("b")
            .AppendRightJoin("c");

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemplo n.º 7
0
        public void Test_On_3()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [a] ");
            result.AppendLine("From [Sample] As [b] ");
            result.Append("Join [Sample2] As [c] On [b].[IntValue]<>[c].[IntValue]");

            //执行
            _builder.Select("a")
            .From <Sample>("b")
            .Join <Sample2>("c").On <Sample, Sample2>((l, r) => l.IntValue != r.IntValue);

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemplo n.º 8
0
        public void Test_From_7()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [c] ");
            result.Append("From [b].[Sample] As [a], [b].[Sample2] As [b]");

            //执行
            _builder.Select("c")
            .From <Sample>("a", "b")
            .From <Sample2>("b", "b");
            Output.WriteLine(_builder.ToSql());

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemplo n.º 9
0
        public void Test_Select_9()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [s].[IsDeleted],[s].[StringValue] As [a] ");
            result.Append("From [Sample3] As [s]");

            //执行
            _builder = new SqlServerBuilder(new DefaultEntityMatedata());
            _builder.Select <Sample3>()
            .Select <Sample3>(t => t.StringValue, "a")
            .From <Sample3>("s");

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemplo n.º 10
0
        public void TestAppendOrderBy_1()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [a].[Email] ");
            result.AppendLine("From [Sample] As [a] ");
            result.Append("Order By b");

            //执行
            _builder.Select <Sample>(t => t.Email)
            .From <Sample>("a")
            .AppendOrderBy("b");

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemplo n.º 11
0
        public void Test_OrIfNotEmpty_2()
        {
            //结果
            var result = new Str();

            result.Append("Where ([Email] In (@_p_0,@_p_1) Or [Url]=@_p_2)");

            //执行
            var list = new List <string> {
                "a", "b"
            };

            _clause.OrIfNotEmpty <Sample>(t => list.Contains(t.Email), t => t.Url == "a");

            //验证
            Assert.Equal(result.ToString(), GetSql());
        }
Exemplo n.º 12
0
        public void Test_34()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [a].[Email] ");
            result.AppendLine("From [Sample] As [a] ");
            result.Append("Group By [a].[B],[c].[D]");

            //执行
            _builder.Select <Sample>(t => t.Email)
            .From <Sample>("a")
            .GroupBy("a.B,c.[D]");

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemplo n.º 13
0
        public void Test_30()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [a].[Email] ");
            result.AppendLine("From [Sample] As [a] ");
            result.Append("Where [a].[Email] Is Not Null And [a].[Email]<>''");

            //执行
            _builder.Select <Sample>(t => t.Email)
            .From <Sample>("a")
            .IsNotEmpty <Sample>(t => t.Email);

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemplo n.º 14
0
        public void Test_27()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [a].[Email] ");
            result.AppendLine("From [Sample] As [a] ");
            result.Append("Where ([a].[Email] Is Null Or [a].[Email]='')");

            //执行
            _builder.Select <Sample>(t => t.Email)
            .From <Sample>("a")
            .IsEmpty("a.Email");

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemplo n.º 15
0
        public void Test_LeftJoin_1()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [a] ");
            result.AppendLine("From [b] ");
            result.Append("Left Join [c] As [d]");

            //执行
            _builder.Select("a")
            .From("b")
            .LeftJoin("c", "d");

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemplo n.º 16
0
        public void Test_RemoveSelect_1()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [s].[Description],[s].[DisplayName],[s].[StringValue],[s].[IntValue] ");
            result.Append("From [Sample2] As [s]");

            //执行
            _builder = new SqlServerBuilder(new DefaultEntityMatedata());
            _builder.Select <Sample2>()
            .RemoveSelect <Sample2>(x => x.Display)
            .From <Sample2>("s");

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemplo n.º 17
0
        public void Test_Join_2()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [a] ");
            result.AppendLine("From [b] ");
            result.Append("Join [d].[Sample] As [c]");

            //执行
            _builder.Select("a")
            .From("b")
            .Join <Sample>("c", "d");

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemplo n.º 18
0
        public void Test_3()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select `a3`.`a`,`a1`.`b1`,`a2`.`b2` ");
            result.AppendLine("From `b` As `a2` ");
            result.Append("Join `t.c` As `a3` On `a2`.`d`=@_p_0");

            //执行
            _builder.Select("a,a1.b1,a2.b2", "a3")
            .From("b", "a2")
            .Join("t.c", "a3").On("a2.d", "e");

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemplo n.º 19
0
        public void Test_On_1()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [a] ");
            result.AppendLine("From [b] ");
            result.Append("Join [c] As [d] On [b].[Id]<>@_p_0");

            //执行
            _builder.Select("a")
            .From("b")
            .Join("c", "d").On("b.Id", "c", Operator.NotEqual);

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
        public void TestIsDeletedFilter_1()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [s].[StringValue] ");
            result.AppendLine("From [Sample5] As [s] ");
            result.AppendLine("Join [Sample2] As [s2] On [s].[IntValue]=[s2].[IntValue] ");
            result.Append("Where [s].[IsDeleted]=@_p_0");

            //执行
            _builder.Select <Sample5>(t => t.StringValue).From <Sample5>("s").Join <Sample2>("s2").On <Sample5, Sample2>((l, r) => l.IntValue == r.IntValue);

            //验证
            _output.WriteLine(_builder.ToSql());
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
        public void Test_AppendGroupBy_2()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [a].[Email] ");
            result.AppendLine("From [Sample] As [a] ");
            result.Append("Group By b");

            //执行
            _builder.Select <Sample>(t => t.Email)
            .From <Sample>("a")
            .AppendGroupBy("c", false)
            .AppendGroupBy("b", true);

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemplo n.º 22
0
        public void Test_Between_10()
        {
            //结果
            var result = new Str();

            result.Append("Where [a].[B]>=@_p_0 And [a].[B]<@_p_1");

            //执行
            var min = DateTime.Parse("2000-1-1 10:10:10");
            var max = DateTime.Parse("2000-1-2 10:10:10");

            _clause.Between("a.B", min, max, false, null);

            //验证
            Assert.Equal(DateTime.Parse("2000-1-1"), _parameterManager.GetParams()["@_p_0"]);
            Assert.Equal(DateTime.Parse("2000-1-3"), _parameterManager.GetParams()["@_p_1"]);
            Assert.Equal(result.ToString(), GetSql());
        }
Exemplo n.º 23
0
        public void Test_Between_11()
        {
            //结果
            var result = new Str();

            result.Append("Where [a].[B]>@_p_0 And [a].[B]<@_p_1");

            //执行
            var min = DateTime.Parse("2000-1-1 10:10:10");
            var max = DateTime.Parse("2000-1-2 10:10:10");

            _clause.Between("a.B", min, max, true, Boundary.Neither);

            //验证
            Assert.Equal(min, _parameterManager.GetParams()["@_p_0"]);
            Assert.Equal(max, _parameterManager.GetParams()["@_p_1"]);
            Assert.Equal(result.ToString(), GetSql());
        }
        public void TestLeftJoin_7()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [a].[Email],[a].[BoolValue],[b].[Description],[b].[IntValue] ");
            result.AppendLine("From [Sample] As [a] ");
            result.Append("Left Join [Sample2] As [b] On [a].[Email]=[b].[StringValue] And [a].[IntValue]<>[b].[IntValue]");

            //执行
            _builder.Select <Sample>(t => new object[] { t.Email, t.BoolValue })
            .Select <Sample2>(t => new object[] { t.Description, t.IntValue })
            .From <Sample>("a")
            .LeftJoin <Sample2>("b").On <Sample, Sample2>((l, r) => l.Email == r.StringValue && l.IntValue != r.IntValue);

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
        public void TestLeftJoin_6()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [a] ");
            result.AppendLine("From [b] ");
            result.Append("Left Join c");

            //执行
            _builder.Select("a")
            .From("b")
            .AppendLeftJoin("d", false)
            .AppendLeftJoin("c", true);

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemplo n.º 26
0
        public void Test_36()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select * ");
            result.AppendLine("From [Sample] As [k] ");
            result.Append("Where [k].[Email]=@_p_0 And [k].[StringValue] Like @_p_1");

            //执行
            _builder.From <Sample>("k").Where <Sample>(t => t.Email == "a" && t.StringValue.Contains("b"));

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
            Assert.Equal(2, _builder.GetParams().Count);
            Assert.Equal("a", _builder.GetParams()["@_p_0"]);
            Assert.Equal("%b%", _builder.GetParams()["@_p_1"]);
        }
Exemplo n.º 27
0
            public void HandleAmount(Amount amount)
            {
                int width;

                if (!First)
                {
                    Str.AppendLine();
                    width = LatterWidth;
                }
                else
                {
                    First = false;
                    width = FirstWidth;
                }

                string s = amount.Print(Flags);

                Str.Append(UniString.Justify(s, width, Flags.HasFlag(AmountPrintEnum.AMOUNT_PRINT_RIGHT_JUSTIFY), Flags.HasFlag(AmountPrintEnum.AMOUNT_PRINT_COLORIZE) && amount.Sign < 0));
            }
        public void TestOn_4()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [a],[b] ");
            result.AppendLine("From [Sample] As [s] ");
            result.Append("Left Join [Sample2] As [s2] On [s].[IntValue]=[s2].[IntValue] And [s].[StringValue]=@_p_0");

            //执行
            _builder.Select("a,b")
            .From <Sample>("s")
            .LeftJoin <Sample2>("s2").On <Sample, Sample2>((l, r) => l.IntValue == r.IntValue && l.StringValue == "a");

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
            _output.WriteLine(_builder.ToSql());
            Assert.Equal("a", _builder.GetParams()["@_p_0"]);
        }
Exemplo n.º 29
0
        public void Test_With()
        {
            //结果
            var result = new Str();

            result.AppendLine("With Recursive `Test` ");
            result.AppendLine("As (Select `a`,`b` ");
            result.AppendLine("From `Test2`)");
            result.AppendLine("Select `a`,`b` ");
            result.Append("From `Test`");

            //执行
            var builder2 = _builder.New().Select("a,b").From("Test2");

            _builder.Select("a,b").From("Test").With("Test", builder2);

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemplo n.º 30
0
        public void Test_35()
        {
            //结果
            var result = new Str();

            result.AppendLine("Select [a].[Email] ");
            result.AppendLine("From [Sample] As [a] ");
            result.Append("Where [a].[B]>=@_p_0 And [a].[B]<=@_p_1");

            //执行
            _builder.Select <Sample>(t => t.Email)
            .From <Sample>("a")
            .Between("a.B", 1, 2);

            //验证
            Assert.Equal(1, _builder.GetParams()["@_p_0"]);
            Assert.Equal(2, _builder.GetParams()["@_p_1"]);
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemplo n.º 31
0
 /// <summary>
 /// 断言结果
 /// </summary>
 private void AssertResult(string @class = "", string options = "")
 {
     @class = @class.IsEmpty() ? "" : " " + @class;
     options = options.IsEmpty() ? "" : " " + options;
     Str result = new Str();
     result.Append("<button type=\"button\" class=\"btn btn-default{0}\" data-toggle=\"button\"{1}>", @class, options);
     result.Append("a</button>");
     Assert.AreEqual(result.ToString(), _control.ToHtmlString());
     Console.WriteLine(result.ToString());
 }