using ZB.MOM.WW.ScadaBridge.CentralUI.Components.Shared; namespace ZB.MOM.WW.ScadaBridge.CentralUI.Tests.Shared; /// Custom completions belong to the dialog whose typed context was issued. public sealed class DialogContextIdentityTests { /// A canceled custom context cannot confirm or cancel a subsequently opened dialog. [Theory] [InlineData(false)] [InlineData(true)] public async Task StaleCustomContext_DoesNotResolveNewDialog(bool staleCancel) { var service = new DialogService(); DialogContext first = null!; var pendingFirst = service.ShowAsync("First", context => { first = context; return _ => { }; }); first.Cancel(); Assert.False(await pendingFirst); DialogContext second = null!; var pendingSecond = service.ShowAsync("Second", context => { second = context; return _ => { }; }); if (staleCancel) first.Cancel(); else first.Close(true); Assert.False(pendingSecond.IsCompleted); Assert.Equal("Second", service.Current?.Title); second.Close(true); Assert.True(await pendingSecond); Assert.Null(service.Current); } }