using Microsoft.Extensions.Logging; using Microsoft.VisualStudio.TestTools.UnitTesting; using Moq; using System; using System.Threading; using System.Threading.Tasks; using Tgstation.Server.Host.Watchdog; namespace Tgstation.Server.Host.Console.Tests { [TestClass] public class TestProgram { [TestMethod] public async Task TestProgramRuns() { var mockServer = new Mock(); var args = Array.Empty(); mockServer.Setup(x => x.RunAsync(false, args, It.IsAny())).Returns(ValueTask.FromResult(true)).Verifiable(); var mockServerFactory = new Mock(); mockServerFactory.Setup(x => x.CreateWatchdog(It.IsNotNull(), It.IsNotNull())).Returns(mockServer.Object).Verifiable(); Program.WatchdogFactory = mockServerFactory.Object; await Program.Main(args); mockServer.VerifyAll(); mockServerFactory.VerifyAll(); } } }