using Aiursoft.CSTools.Tools; using Microsoft.Extensions.Hosting; using Microsoft.VisualStudio.TestTools.UnitTesting; using static Aiursoft.WebTools.Extends; namespace Aiursoft.ChessServer.Tests; [TestClass] public class BasicTests { private readonly string _endpointUrl; private readonly int _port; private readonly HttpClient _http; private IHost? _server; public BasicTests() { _port = Network.GetAvailablePort(); _endpointUrl = $"http://localhost:{_port}"; _http = new HttpClient(); } [TestInitialize] public async Task CreateServer() { _server = App(Array.Empty(), port: _port); await _server.StartAsync(); } [TestCleanup] public async Task CleanServer() { if (_server == null) return; await _server.StopAsync(); _server.Dispose(); } [TestMethod] [DataRow("/")] public async Task GetHome(string url) { var response = await _http.GetAsync(_endpointUrl + url); response.EnsureSuccessStatusCode(); // Status Code 200-299 } }