using System; using System.Collections.Generic; using System.Diagnostics; using Shouldly; using Xunit; using ZB.MOM.WW.LmxOpcUa.Host; using ZB.MOM.WW.LmxOpcUa.Host.Configuration; using ZB.MOM.WW.LmxOpcUa.Host.Domain; using ZB.MOM.WW.LmxOpcUa.Tests.Helpers; namespace ZB.MOM.WW.LmxOpcUa.Tests.Wiring { /// /// Verifies: Start then Stop completes within 30 seconds. (SVC-004) /// public class ShutdownCompletesTest { /// /// Confirms that a started service can shut down within the required time budget. /// [Fact] public void Shutdown_CompletesWithin30Seconds() { var config = new AppConfiguration { OpcUa = new OpcUaConfiguration { Port = 14841, GalaxyName = "TestGalaxy" }, MxAccess = new MxAccessConfiguration { ClientName = "Test" }, Dashboard = new DashboardConfiguration { Enabled = false } }; var proxy = new FakeMxProxy(); var repo = new FakeGalaxyRepository(); var service = new OpcUaService(config, proxy, repo); service.Start(); var sw = Stopwatch.StartNew(); service.Stop(); sw.Stop(); sw.Elapsed.TotalSeconds.ShouldBeLessThan(30); } } }