Skip to content

Commit 875089f

Browse files
committed
!3767 test(#I6ANVF): add unit test for OnBreakPointChanged of Table
* test: 增加 OnBreakPointChanged 单元测试 * refactor: 更新服务注入代码
1 parent 2e1a764 commit 875089f

2 files changed

Lines changed: 42 additions & 16 deletions

File tree

src/BootstrapBlazor/Extensions/BootstrapBlazorServiceCollectionExtensions.cs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,29 +29,29 @@ public static IServiceCollection AddBootstrapBlazor(this IServiceCollection serv
2929

3030
services.AddAuthorizationCore();
3131
services.AddJsonLocalization(localizationConfigure);
32-
services.AddSingleton<ICacheManager, CacheManager>();
32+
services.TryAddSingleton<ICacheManager, CacheManager>();
3333

3434
services.TryAddSingleton<IComponentIdGenerator, DefaultIdGenerator>();
3535
services.TryAddSingleton(typeof(IDispatchService<>), typeof(DefaultDispatchService<>));
3636
services.TryAddSingleton(typeof(ILookupService), typeof(NullLookupService));
3737

3838
services.TryAddTransient<ITableExcelExport, DefaultExcelExport>();
3939
services.TryAddScoped(typeof(IDataService<>), typeof(NullDataService<>));
40-
services.TryAddScoped<TabItemTextOptions>();
41-
42-
services.TryAddScoped<DialogService>();
43-
services.TryAddScoped<MessageService>();
44-
services.TryAddScoped<ToastService>();
45-
services.TryAddScoped<SwalService>();
46-
services.TryAddScoped<FullScreenService>();
47-
services.TryAddScoped<PrintService>();
48-
services.TryAddScoped<TitleService>();
49-
services.TryAddScoped<DownloadService>();
50-
services.TryAddScoped<WebClientService>();
51-
services.TryAddScoped<AjaxService>();
52-
services.TryAddScoped(typeof(DragDropService<>));
53-
services.TryAddScoped<ClipboardService>();
54-
services.TryAddScoped<ResizeNotificationService>();
40+
services.AddScoped<TabItemTextOptions>();
41+
42+
services.AddScoped<DialogService>();
43+
services.AddScoped<MessageService>();
44+
services.AddScoped<ToastService>();
45+
services.AddScoped<SwalService>();
46+
services.AddScoped<FullScreenService>();
47+
services.AddScoped<PrintService>();
48+
services.AddScoped<TitleService>();
49+
services.AddScoped<DownloadService>();
50+
services.AddScoped<WebClientService>();
51+
services.AddScoped<AjaxService>();
52+
services.AddScoped(typeof(DragDropService<>));
53+
services.AddScoped<ClipboardService>();
54+
services.AddScoped<ResizeNotificationService>();
5555

5656
services.TryAddScoped<IIPLocatorProvider, DefaultIPLocatorProvider>();
5757
services.TryAddScoped<IReconnectorProvider, ReconnectorProvider>();

test/UnitTest/Components/TableTest.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4181,6 +4181,32 @@ public async Task Refresh_Ok()
41814181
await cut.InvokeAsync(() => button.Instance.OnClickWithoutRender!.Invoke());
41824182
}
41834183

4184+
[Fact]
4185+
public void OnBreakPointChanged_Ok()
4186+
{
4187+
var localizer = Context.Services.GetRequiredService<IStringLocalizer<Foo>>();
4188+
var items = Foo.GenerateFoo(localizer, 2);
4189+
var cut = Context.RenderComponent<BootstrapBlazorRoot>(pb =>
4190+
{
4191+
pb.AddChildContent<Table<Foo>>(pb =>
4192+
{
4193+
pb.Add(a => a.RenderMode, TableRenderMode.Auto);
4194+
pb.Add(a => a.Items, items);
4195+
pb.Add(a => a.TableColumns, foo => builder =>
4196+
{
4197+
builder.OpenComponent<TableColumn<Foo, string>>(0);
4198+
builder.AddAttribute(1, "Field", "Name");
4199+
builder.AddAttribute(2, "FieldExpression", Utility.GenerateValueExpression(foo, "Name", typeof(string)));
4200+
builder.CloseComponent();
4201+
});
4202+
});
4203+
});
4204+
4205+
var responsive = Context.Services.GetRequiredService<ResizeNotificationService>();
4206+
var methodInfo = responsive.GetType().GetMethod("InvokeAsync", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
4207+
methodInfo?.Invoke(responsive, new object?[] { BreakPoint.ExtraExtraLarge });
4208+
}
4209+
41844210
[Fact]
41854211
public async Task CardView_Ok()
41864212
{

0 commit comments

Comments
 (0)