From 7c82a6219f4cdfb7fbd9c01a02a6f7f96624ec51 Mon Sep 17 00:00:00 2001 From: Argo-Tianyi Date: Sat, 19 Feb 2022 18:15:23 +0800 Subject: [PATCH 1/2] =?UTF-8?q?refactor:=20=E5=88=A0=E9=99=A4=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/UnitTest/Components/TransferTest.cs | 210 ----------------------- 1 file changed, 210 deletions(-) diff --git a/test/UnitTest/Components/TransferTest.cs b/test/UnitTest/Components/TransferTest.cs index 294ef8831..f2766e279 100644 --- a/test/UnitTest/Components/TransferTest.cs +++ b/test/UnitTest/Components/TransferTest.cs @@ -179,214 +179,4 @@ public class TransferTest : BootstrapBlazorTestBase cut.Contains("LeftPannelSearchPlaceHolderString"); cut.Contains("RightPannelSearchPlaceHolderString"); } - - //[Fact] - //public void Items_Ok() - //{ - // var cut = Context.RenderComponent>(builder => - // { - // builder.Add(a => a.Items, Items); - // }); - // var items = cut.FindAll(".transfer-panel-list div"); - - // Assert.True(items.Count == Items.Count()); - //} - - [NotNull] - private IEnumerable? Items { get; set; } = Enumerable.Range(1, 15).Select(i => new SelectedItem() - { - Text = $"DataLeft {i:d2}", - Value = i.ToString() - }); - - [NotNull] - private IEnumerable? ItemsRight { get; set; } = Enumerable.Range(1, 15).Select(i => new SelectedItem() - { - Text = $"DataRight {i:d2}", - Value = i.ToString() - }); - - private static string? SetItemClass(SelectedItem item) => item.Value switch - { - "2" => "bg-success text-white", - "4" => "bg-info text-white", - "6" => "bg-primary text-white", - "8" => "bg-warning text-white", - _ => null - }; - - //[Fact] - //public void TransferPanel_Ok() - //{ - // var select = false; - // var cut = Context.RenderComponent(); - // cut.SetParametersAndRender(builder => builder.Add(a => a.Text, "Test")); - // Assert.Contains("Test", cut.Markup); - - // //左侧头部复选框 - // var btns = cut.Find(".transfer-panel-header input"); - // btns.Click(); - // cut.SetParametersAndRender(builder => builder.Add(a => a.Items, Items.ToList())); - // btns.Click(); - // Assert.False(select); - - // cut.SetParametersAndRender(builder => builder.Add(a => a.OnSetItemClass, SetItemClass)); - // var items = cut.FindAll(".transfer-panel-list div"); - // Assert.Contains("bg-success text-white", items[1].ClassName); - - // //搜索框,有item,无item - // Assert.DoesNotContain("transfer-panel-filter", cut.Markup); - // cut.SetParametersAndRender(builder => builder.Add(s => s.ShowSearch, true)); - // cut.SetParametersAndRender(builder => builder.Add(s => s.SearchPlaceHolderString, "SearchPlaceHolderStringOK")); - // Assert.Contains("SearchPlaceHolderStringOK", cut.Markup); - // Assert.Contains("transfer-panel-filter", cut.Markup); - // var searchbar = cut.Find(".transfer-panel-filter input"); - // searchbar.Input("好"); - // Assert.Contains("is-on", cut.Markup); - // var searchbaritem = cut.FindAll(".transfer-panel-list input"); - // Assert.True(searchbaritem.Count() == 0); - - // searchbar.KeyUp(new KeyboardEventArgs() { Key = "Escape" }); - // cut.SetParametersAndRender(builder => builder.Add(a => a.Items, null)); - // searchbar.Input("3"); - // Assert.True(searchbaritem.Count() == 0); - // cut.SetParametersAndRender(builder => builder.Add(a => a.Items, Items.ToList())); - // searchbar.Input("3"); - // searchbaritem = cut.FindAll(".transfer-panel-list input"); - // Assert.True(searchbaritem.Count() == 2); - - - // // 选中事件,先测空的OnSelectedItemsChanged分支 - // var item1 = cut.FindAll(".transfer-panel-list input"); - // item1[0].Click(); - - // cut.SetParametersAndRender(builder => builder.Add(a => a.OnSelectedItemsChanged, () => - // { - // select = true; - // return Task.CompletedTask; - // })); - // item1[0].Click(); - // Assert.True(select); - - // btns.Click(); - // btns.Click(); - - // cut.SetParametersAndRender(builder => builder.Add(s => s.IsDisabled, true)); - // cut.SetParametersAndRender(builder => builder.Add(s => s.IsDisabled, false)); - // Assert.DoesNotContain(" disabled", cut.Markup); - - //} - - //[Fact] - //public void TextAndIsDisabled_Ok() - //{ - // var cut = Context.RenderComponent>(builder => - // { - // builder.Add(a => a.Items, Items); - // }); - // cut.SetParametersAndRender(builder => builder.Add(s => s.LeftPanelText, "LeftPanelTextOK")); - // Assert.Contains("LeftPanelTextOK", cut.Markup); - - // cut.SetParametersAndRender(builder => builder.Add(s => s.RightPanelText, "RightPanelTextOK")); - // Assert.Contains("RightPanelTextOK", cut.Markup); - - // cut.SetParametersAndRender(builder => builder.Add(s => s.LeftButtonText, "LeftButtonTextOK")); - // Assert.Contains("LeftButtonTextOK", cut.Markup); - - // cut.SetParametersAndRender(builder => builder.Add(s => s.RightButtonText, "RightButtonTextOK")); - // Assert.Contains("RightButtonTextOK", cut.Markup); - - // Assert.DoesNotContain("transfer-panel-filter", cut.Markup); - // cut.SetParametersAndRender(builder => builder.Add(s => s.ShowSearch, true)); - - // cut.SetParametersAndRender(builder => builder.Add(s => s.LeftPannelSearchPlaceHolderString, "LeftPannelSearchPlaceHolderStringOK")); - // Assert.Contains("LeftPannelSearchPlaceHolderStringOK", cut.Markup); - - // cut.SetParametersAndRender(builder => builder.Add(s => s.RightPannelSearchPlaceHolderString, "RightPannelSearchPlaceHolderStringOK")); - // Assert.Contains("RightPannelSearchPlaceHolderStringOK", cut.Markup); - - // cut.SetParametersAndRender(builder => builder.Add(s => s.IsDisabled, true)); - // Assert.Contains("transfer-panel-filter", cut.Markup); - - // //要配合ValidateForm - // cut.SetParametersAndRender(builder => builder.Add(s => s.DisplayText, "DisplayTextTest")); - // //Assert.Contains("DisplayTextTest", cut.Markup); - //} - - //[Fact] - //public void ValidateForm_Ok() - //{ - // Foo Model = new(); - // var cut = Context.RenderComponent(pb => - // { - // pb.Add(a => a.Model, Items); - // pb.AddChildContent>(builder => - // { - // builder.Add(a => a.Items, Items); - // builder.Add(a => a.DisplayText, "DisplayTextTest"); - // //@bind - Value = "@Model.Hobby" - // }); - // }); - // Assert.Contains("DisplayTextTest", cut.Markup); - //} - - //[Fact] - //public void OnSetItemClass_Ok() - //{ - // var cut = Context.RenderComponent>(builder => - // { - // builder.Add(a => a.Items, Items); - // builder.Add(a => a.OnSetItemClass, SetItemClass); - // }); - // var items = cut.FindAll(".transfer-panel-list div"); - - // Assert.Contains("bg-success text-white", items[1].ClassName); - //} - - - //[Fact] - //public void SelectedItemsChanged_Ok() - //{ - // IEnumerable selecteditems = new List(); - // var cut = Context.RenderComponent>(builder => - // { - // builder.Add(a => a.Items, Items); - // builder.Add(a => a.OnSelectedItemsChanged, (v1) => - // { - // selecteditems = v1; - // return Task.CompletedTask; - // }); - // }); - - // Assert.DoesNotContain("form-check is-checked", cut.Markup); - // var btns = cut.FindAll(".transfer-buttons button"); - - // // 选中事件 - // var item1 = cut.FindAll(".transfer-panel-list input"); - // item1[0].Click(); - // Assert.Contains("form-check is-checked", cut.Markup); - // //DataLeft 03 - // item1[2].Click(); - // //走两个到右边 - // btns[1].Click(); - // Assert.True(selecteditems.Any() && selecteditems.Count() == 2); - // Assert.True(selecteditems.ToList()[0].Text == "DataLeft 01"); - // Assert.True(selecteditems.ToList()[1].Text == "DataLeft 03"); - - // //回来一个到左边 - // var item2 = cut.FindAll(".transfer-panel-list input"); - // item2.Last().Click(); - // btns[0].Click(); - // Assert.True(selecteditems.Any() && selecteditems.Count() == 1); - // Assert.True(selecteditems.ToList()[0].Text == "DataLeft 01"); - - // // [全部]选中事件 - // var item = cut.Find(".form-check-input"); - // item.Click(); - // Assert.Contains("form-check is-checked", cut.Markup); - - // btns[1].Click(); - // Assert.True(selecteditems.Any() && selecteditems.Count() == Items.Count()); - - //} } -- Gitee From 5dc4637f2e670d75b9f96c1246dd8779c41fac1f Mon Sep 17 00:00:00 2001 From: Argo-Tianyi Date: Sat, 19 Feb 2022 19:28:02 +0800 Subject: [PATCH 2/2] =?UTF-8?q?test:=20=E5=A2=9E=E5=8A=A0=20TransferPanel?= =?UTF-8?q?=20=E5=8D=95=E5=85=83=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/UnitTest/Components/TransferPanelTest.cs | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 test/UnitTest/Components/TransferPanelTest.cs diff --git a/test/UnitTest/Components/TransferPanelTest.cs b/test/UnitTest/Components/TransferPanelTest.cs new file mode 100644 index 000000000..7511e55d1 --- /dev/null +++ b/test/UnitTest/Components/TransferPanelTest.cs @@ -0,0 +1,79 @@ +// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +// Website: https://www.blazor.zone or https://argozhang.github.io/ + +namespace UnitTest.Components; + +public class TransferPanelTest : BootstrapBlazorTestBase +{ + [Fact] + public void HeaderCheckState_Ok() + { + var cut = Context.RenderComponent(); + + // Items 为空时全选 Checkbox + var checkbox = cut.FindComponent>(); + cut.InvokeAsync(() => checkbox.Instance.SetState(CheckboxState.UnChecked)); + + cut.SetParametersAndRender(pb => + { + pb.Add(a => a.Items, new List + { + new("1", "Test1"), + new("2", "Test2") + }); + }); + checkbox = cut.FindComponent>(); + cut.InvokeAsync(() => checkbox.Instance.SetState(CheckboxState.Checked)); + cut.InvokeAsync(() => checkbox.Instance.SetState(CheckboxState.UnChecked)); + + // 显示 Search + cut.SetParametersAndRender(pb => + { + pb.Add(a => a.ShowSearch, true); + }); + var input = cut.Find(".input-inner"); + input.Input(new ChangeEventArgs() + { + Value = "1" + }); + + // Items 为空时全选 Checkbox + checkbox = cut.FindComponent>(); + cut.InvokeAsync(() => checkbox.Instance.SetState(CheckboxState.Checked)); + + input.KeyUp("Escape"); + } + + [Fact] + public void GetShownItems_Ok() + { + var cut = Context.RenderComponent(pb => + { + pb.Add(a => a.ShowSearch, true); + }); + + var input = cut.Find(".input-inner"); + input.Input(new ChangeEventArgs() + { + Value = "No" + }); + + // Items 为空时全选 Checkbox + var checkbox = cut.FindComponent>(); + cut.InvokeAsync(() => checkbox.Instance.SetState(CheckboxState.Checked)); + + // 未设置 Items 显示 Search + } + + [Fact] + public void IsDisabled_Ok() + { + var cut = Context.RenderComponent(pb => + { + pb.Add(a => a.ShowSearch, true); + pb.Add(a => a.IsDisabled, true); + }); + cut.Contains("disabled=\"disabled\""); + } +} -- Gitee