using System.Numerics; using AcDream.App.UI; namespace AcDream.App.Tests.UI; public sealed class PortalWaitNoticeControllerTests { // Campaign CH user-gate round 1 (item D): the user confirmed live, // side-by-side against retail, that this notice renders in the same // bright yellow as an incoming Tell (RetailChatColorTable.Yellow). private static readonly Vector4 RetailWaitCueColor = new(1f, 1f, 0.247f, 1f); [Fact] public void Notice_IsCenteredOverlayAndDisposesFromRetainedRoot() { var root = new UiRoot { Width = 1280f, Height = 720f, }; using (var controller = new PortalWaitNoticeController(root)) { UiText text = Assert.IsType(Assert.Single(root.Children)); Assert.False(text.Visible); Assert.True(text.Centered); Assert.True(text.ClickThrough); Assert.Equal(root.Width, text.Width); Assert.Equal(root.Height, text.Height); Assert.Equal(RetailWaitCueColor, text.DefaultColor); controller.Set("In Portal Space - Please Wait..."); Assert.True(text.Visible); UiText.Line line = Assert.Single(text.LinesProvider!()); Assert.Equal("In Portal Space - Please Wait...", line.Text); Assert.Equal(RetailWaitCueColor, line.Color); controller.Set(null); Assert.False(text.Visible); } Assert.Empty(root.Children); } }