Exemple #1
0
        public void Test_17()
        {
            //结果
            var result = new String();

            result.AppendLine("Select [a].[Email] ");
            result.AppendLine("From [Sample] As [a] ");
            result.Append("Where [a].[Email] Like @_p_0");

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

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
            Assert.Single(_builder.GetParams());
            Assert.Equal("%abc%", _builder.GetParams()["@_p_0"]);
        }
Exemple #2
0
        public void TestWith_1()
        {
            //结果
            var result = new String();

            result.AppendLine("With [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());
        }
Exemple #3
0
        public void Test_6()
        {
            //结果
            var result = new String();

            result.AppendLine("Select [a].[Email],[a].[BoolValue] ");
            result.AppendLine("From [Sample] As [a] ");
            result.Append("Where [a].[Email]=@_p_0");

            //执行
            _builder.Select <Sample>(t => new object[] { t.Email, t.BoolValue })
            .From <Sample>("a")
            .Equal <Sample>(t => t.Email, "abc");

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
            Assert.Single(_builder.GetParams());
            Assert.Equal("abc", _builder.GetParams()["@_p_0"]);
        }
Exemple #4
0
        public void TestIsDeletedFilter_2()
        {
            //结果
            var result = new String();

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

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

            //验证
            _output.WriteLine(_builder.ToSql());
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemple #5
0
        public void TestWhere()
        {
            //结果
            var result = new String();

            result.AppendLine("Select \"a\".\"Email\" ");
            result.AppendLine("From \"Sample\" \"a\" ");
            result.Append("Where \"a\".\"Email\"<>:p_0");

            //执行
            _builder.Select <Sample>(t => new object[] { t.Email })
            .From <Sample>("a")
            .Where <Sample>(t => t.Email, "abc", Operator.NotEqual);

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
            Assert.Single(_builder.GetParams());
            Assert.Equal("abc", _builder.GetParams()["p_0"]);
        }
Exemple #6
0
        public void Test_35()
        {
            //结果
            var result = new String();

            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());
        }
Exemple #7
0
        public void TestShowLabel_2()
        {
            var config = new GridShareConfig {
                ShowLabel = true
            };
            var items = new Dictionary <object, object> {
                { typeof(GridShareConfig), config }
            };
            var result = new String();

            result.Append("<nz-form-item>");
            result.Append("<nz-form-label>");
            result.Append("</nz-form-label>");
            result.Append("<nz-form-control>");
            result.Append("<x-textbox></x-textbox>");
            result.Append("</nz-form-control>");
            result.Append("</nz-form-item>");
            Assert.Equal(result.ToString(), GetResult(items: items));
        }
        public void Test_47()
        {
            //结果
            var result = new String();

            result.AppendLine("Select * ");
            result.AppendLine("From [Sample] As [s] ");
            result.Append("Where [s].[NullableLogLevel]=@_p_0");

            //执行
            var sample = new Sample {
                NullableLogLevel = LogLevel.Error
            };

            _builder.From <Sample>("s").Where <Sample>(t => t.NullableLogLevel == sample.NullableLogLevel);

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
            Assert.Equal(4, _builder.GetParams()["@_p_0"]);
        }
        public void Test_40()
        {
            //结果
            var result = new String();

            result.AppendLine("Select * ");
            result.AppendLine("From [Test] ");
            result.Append("Where ([Age]=@_p_1 Or [Name]=@_p_0)");

            //执行
            var newBuilder = _builder.New().Where("Name", "a");

            _builder.From("Test").Where("Age", 1).Or(newBuilder);

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
            Assert.Equal(2, _builder.GetParams().Count);
            Assert.Equal("a", _builder.GetParams()["@_p_0"]);
            Assert.Equal(1, _builder.GetParams()["@_p_1"]);
        }
Exemple #10
0
        public void TestType_Checkbox()
        {
            var attributes = new TagHelperAttributeList {
                { UiConst.Type, TableColumnType.Checkbox }
            };
            var items = new Dictionary <object, object> {
                { typeof(TableShareConfig), new TableShareConfig("id") }
            };
            var result = new String();

            result.Append("<td (click)=\"$event.stopPropagation()\" (nzCheckedChange)=\"id_wrapper.checkedSelection.toggle(row)\" ");
            result.Append("[nzChecked]=\"id_wrapper.checkedSelection.isSelected(row)\" ");
            result.Append("[nzShowCheckbox]=\"id_wrapper.multiple\">");
            result.Append("<label (click)=\"$event.stopPropagation()\" (ngModelChange)=\"id_wrapper.checkRowOnly(row)\" ");
            result.Append("*ngIf=\"!id_wrapper.multiple\" name=\"radio_id\" nz-radio=\"\" ");
            result.Append("[ngModel]=\"id_wrapper.checkedSelection.isSelected(row)\">");
            result.Append("</label>");
            result.Append("</td>");
            Assert.Equal(result.ToString(), GetResult(attributes, items: items));
        }
Exemple #11
0
        public void TestOrIfNotEmpty_4()
        {
            //结果
            var result = new String();

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

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

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

            //验证
            Assert.Equal(result.ToString(), GetSql());
        }
Exemple #12
0
        public void Test_43()
        {
            //结果
            var result = new String();

            result.AppendLine("Select * ");
            result.AppendLine("From [Test] ");
            result.AppendLine("Order By [a] ");
            result.Append("Offset 0 Rows Fetch Next 20 Rows Only");

            //执行
            var pager = new QueryParameter {
                Order = "a"
            };

            _builder.From("Test").Page(pager);

            //验证
            _output.WriteLine(_builder.ToSql());
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemple #13
0
        public void Test_51()
        {
            //结果
            var result = new String();

            result.AppendLine("Select * ");
            result.AppendLine("From [Sample] As [s] ");
            result.Append("Where [s].[Email] In (@_p_0,@_p_1)");

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

            _builder.From <Sample>("s").Or <Sample>(t => list.Contains(t.Email));

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
            Assert.Equal("a", _builder.GetParams()["@_p_0"]);
            Assert.Equal("b", _builder.GetParams()["@_p_1"]);
        }
Exemple #14
0
        public void Test_3()
        {
            //结果
            var result = new String();

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

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

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
            Assert.Single(_builder.GetParams());
            Assert.Equal("abc", _builder.GetParams()["@_p_0"]);
        }
Exemple #15
0
        public void TestIsFlex_3()
        {
            var config = new GridShareConfig {
                FormItemFlex = true
            };
            var items = new Dictionary <object, object> {
                { typeof(GridShareConfig), config }
            };
            var attributes = new TagHelperAttributeList {
                { UiConst.Span, 2 }, { UiConst.LabelSpan, 3 }, { UiConst.IsFlex, false }
            };
            var result = new String();

            result.Append("<nz-form-item>");
            result.Append("<nz-form-label [nzSpan]=\"3\">");
            result.Append("</nz-form-label>");
            result.Append("<nz-form-control [nzSpan]=\"2\">");
            result.Append("<x-textbox></x-textbox>");
            result.Append("</nz-form-control>");
            result.Append("</nz-form-item>");
            Assert.Equal(result.ToString(), GetResult(attributes, items: items));
        }
Exemple #16
0
        public void TestPage_2()
        {
            //结果
            var result = new String();

            result.AppendLine("Select * ");
            result.AppendLine("From [Test] ");
            result.AppendLine("Order By [a] ");
            result.Append("Offset @_p_0 Rows Fetch Next @_p_1 Rows Only");

            //执行
            var pager = new QueryParameter {
                Order = "a"
            };

            _builder.From("Test").Page(pager);

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
            Assert.Equal(0, _builder.GetParams()["@_p_0"]);
            Assert.Equal(20, _builder.GetParams()["@_p_1"]);
        }
Exemple #17
0
        public void Test_39()
        {
            //结果
            var result = new String();

            result.AppendLine("Select * ");
            result.AppendLine("From [Test] ");
            result.Append("Where [Age]=@_p_2 And [Name]=@_p_0 And [Code]=@_p_1");

            //执行
            var builder1 = _builder.New().Where("Name", "a");
            var builder2 = _builder.New().Where("Code", "b");

            _builder.From("Test").Where("Age", 1).And(builder1).And(builder2);

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
            Assert.Equal(3, _builder.GetParams().Count);
            Assert.Equal("a", _builder.GetParams()["@_p_0"]);
            Assert.Equal("b", _builder.GetParams()["@_p_1"]);
            Assert.Equal(1, _builder.GetParams()["@_p_2"]);
        }
Exemple #18
0
        public void Test_4()
        {
            //结果
            var result = new String();

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

            //执行
            _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)
            .Where <Sample>(t => t.Email, "abc");

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
            Assert.Single(_builder.GetParams());
            Assert.Equal("abc", _builder.GetParams()["@_p_0"]);
        }
Exemple #19
0
        public void TestIsDeletedFilter_3()
        {
            //结果
            var result = new String();

            result.AppendLine("Select [s5].[StringValue] ");
            result.AppendLine("From [Sample5] As [s5] ");
            result.AppendLine("Join [Sample6] As [s6] On [s5].[IntValue]=[s6].[IntValue] And [s6].[IsDeleted]=@_p_1 ");
            result.AppendLine("Left Join [Sample7] As [s7] On [s6].[IntValue]=[s7].[IntValue] And [s7].[IsDeleted]=@_p_2 ");
            result.AppendLine("Right Join [Sample8] As [s8] On [s7].[IntValue]=[s8].[IntValue] And [s8].[IsDeleted]=@_p_3 ");
            result.Append("Where [s5].[IsDeleted]=@_p_0");

            //执行
            _builder.Select <Sample5>(t => t.StringValue)
            .From <Sample5>("s5")
            .Join <Sample6>("s6").On <Sample5, Sample6>((l, r) => l.IntValue == r.IntValue)
            .LeftJoin <Sample7>("s7").On <Sample6, Sample7>((l, r) => l.IntValue == r.IntValue)
            .RightJoin <Sample8>("s8").On <Sample7, Sample8>((l, r) => l.IntValue == r.IntValue);

            //验证
            _output.WriteLine(_builder.ToSql());
            Assert.Equal(result.ToString(), _builder.ToSql());
        }
Exemple #20
0
        public void TestType_Radio()
        {
            var attributes = new TagHelperAttributeList {
                { UiConst.Type, TableColumnType.Radio }, { UiConst.Title, "a" }
            };
            var items = new Dictionary <object, object> {
                { TableConfig.TableShareKey, new TableShareConfig("id") }
            };
            var result = new String();

            result.Append("<ng-container matColumnDef=\"selectRadio\">");
            result.Append("<mat-header-cell *matHeaderCellDef=\"\">");
            result.Append("a");
            result.Append("</mat-header-cell>");
            result.Append("<mat-cell *matCellDef=\"let row\">");
            result.Append("<mat-radio-button ");
            result.Append("(change)=\"$event?id.checkRow(row):null\" ");
            result.Append("(click)=\"$event.stopPropagation()\" ");
            result.Append("[checked]=\"id.checkedSelection.isSelected(row)\"></mat-radio-button>");
            result.Append("</mat-cell>");
            result.Append("</ng-container>");
            Assert.Equal(result.ToString(), GetResult(attributes, items: items));
        }
Exemple #21
0
        public void Test_53()
        {
            //结果
            var result = new String();

            result.AppendLine("Select * ");
            result.AppendLine("From [Test] ");
            result.AppendLine("Join (Select * ");
            result.AppendLine("From [Test2] ");
            result.AppendLine("Where [Name]=@_p_0) As [t] ");
            result.Append("Where [Age]=@_p_1");

            //执行
            _builder.Select("*").From("Test").AppendJoin(builder => {
                builder.From("Test2").Where("Name", "a");
            }, "t").Where("Age", 1);

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
            Assert.Equal(2, _builder.GetParams().Count);
            Assert.Equal("a", _builder.GetParams()["@_p_0"]);
            Assert.Equal(1, _builder.GetParams()["@_p_1"]);
        }
Exemple #22
0
        public void Test_49()
        {
            //结果
            var result = new String();

            result.Append("Select *,");
            result.AppendLine("(Select Count(*) ");
            result.AppendLine("From [Test2] ");
            result.AppendLine("Where [Name]=@_p_0) As [testCount] ");
            result.AppendLine("From [Test] ");
            result.Append("Where [Age]=@_p_1");

            //执行
            var builder2 = _builder.New().AppendSelect("Count(*)").From("Test2").Where("Name", "a");

            _builder.Select("*").AppendSelect(builder2, "testCount").From("Test").Where("Age", 1);

            //验证
            Assert.Equal(result.ToString(), _builder.ToSql());
            Assert.Equal(2, _builder.GetParams().Count);
            Assert.Equal("a", _builder.GetParams()["@_p_0"]);
            Assert.Equal(1, _builder.GetParams()["@_p_1"]);
        }
Exemple #23
0
        public void Test_33()
        {
            //结果
            var result = new String();

            result.AppendLine("Select [a].[Email] ");
            result.AppendLine("From [Sample] As [a] ");
            result.Append("Where [a].[Email] In (@_p_0,@_p_1)");

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

            _builder.Select <Sample>(t => t.Email)
            .From <Sample>("a")
            .In <Sample>(t => t.Email, list);

            //验证
            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"]);
        }
Exemple #24
0
 /// <summary>
 /// 测试初始化
 /// </summary>
 public StringTest()
 {
     Builder = new String();
 }