using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Mvc.Testing; using Microsoft.AspNetCore.Mvc.Testing.Handlers; using System; using System.Net; using System.Net.Http; using UnitTest; using Xunit; namespace Bootstrap.Admin { [CollectionDefinition("SQLServerContext")] public class BootstrapAdminTestContext : ICollectionFixture { } [CollectionDefinition("SQLiteContext")] public class SQLiteContext : ICollectionFixture { } [CollectionDefinition("MySqlContext")] public class MySqlContext : ICollectionFixture { } public class MySqlBAWebHost : BAWebHost { protected override void ConfigureWebHost(IWebHostBuilder builder) { base.ConfigureWebHost(builder); TestHelper.ConfigureWebHost(builder, Longbow.Data.DatabaseProviderType.MySql); } } public class SQLiteBAWebHost : BAWebHost { protected override void ConfigureWebHost(IWebHostBuilder builder) { base.ConfigureWebHost(builder); TestHelper.ConfigureWebHost(builder, Longbow.Data.DatabaseProviderType.SQLite); } } /// /// /// public class BAWebHost : WebApplicationFactory { /// /// /// static BAWebHost() { // Copy license TestHelper.CopyLicense(); } public BAWebHost() { var client = CreateClient("Account/Login"); var login = client.LoginAsync(); login.Wait(); } /// /// 获得已经登录的HttpClient /// /// /// public HttpClient CreateClient(string baseAddress) => CreateDefaultClient(new Uri($"http://localhost/{baseAddress}/"), new RedirectHandler(7), new CookieContainerHandler(_cookie)); private readonly CookieContainer _cookie = new CookieContainer(); protected override void ConfigureWebHost(IWebHostBuilder builder) { base.ConfigureWebHost(builder); TestHelper.ConfigureWebHost(builder); } } }