diff options
author | crupest <crupest@outlook.com> | 2022-12-20 18:50:28 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-12-20 20:32:53 +0800 |
commit | c7494c4243f3bd0f484aca692f9c878ffd5a097f (patch) | |
tree | fed671901f8e25ba2ce38a3bb52f3a70d6f6801a /docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/CrudTestBase.cs | |
parent | adad56e429d523f4c91c2d2512c32223b17f81a0 (diff) | |
download | crupest-c7494c4243f3bd0f484aca692f9c878ffd5a097f.tar.gz crupest-c7494c4243f3bd0f484aca692f9c878ffd5a097f.tar.bz2 crupest-c7494c4243f3bd0f484aca692f9c878ffd5a097f.zip |
Develop secret api. v48
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/CrudTestBase.cs')
-rw-r--r-- | docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/CrudTestBase.cs | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/CrudTestBase.cs b/docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/CrudTestBase.cs new file mode 100644 index 0000000..117d0cf --- /dev/null +++ b/docker/crupest-api/CrupestApi/CrupestApi.Commons.Tests/Crud/CrudTestBase.cs @@ -0,0 +1,44 @@ +using Microsoft.AspNetCore.TestHost; + +namespace CrupestApi.Commons.Crud.Tests; + +public abstract class CrudTestBase : IAsyncDisposable +{ + protected readonly WebApplication _app; + + protected readonly string _path; + protected readonly string? _authKey; + + protected readonly HttpClient _client; + + public CrudTestBase(string path, string? authKey = null) + { + _path = path; + _authKey = authKey; + + var builder = WebApplication.CreateBuilder(); + builder.WebHost.UseTestServer(); + builder.Services.AddCrudCore(); + ConfigureApplication(builder); + _app = builder.Build(); + + _client = CreateHttpClient(); + } + + protected abstract void ConfigureApplication(WebApplicationBuilder builder); + + public virtual async ValueTask DisposeAsync() + { + await _app.DisposeAsync(); + } + + public TestServer GetTestServer() + { + return _app.GetTestServer(); + } + + public HttpClient CreateHttpClient() + { + return GetTestServer().CreateClient(); + } +} |