Skip to content
bitzorcas
EN

Reference

Integration tests

Integration testing — full API pipeline tests with WebApplicationFactory, database integration, authentication simulation, and multi-tenant scenarios.

Last updated

BitzOrcas.Integration.Tests exercises the full API pipeline — from HTTP request through middleware, Mediator pipeline, and database operations — using WebApplicationFactory.

Setup

Uses WebApplicationFactory<Program> to bootstrap a test server:

public class CustomWebApplicationFactory : WebApplicationFactory<Program>
{
protected override void ConfigureWebHost(IWebHostBuilder builder)
{
builder.ConfigureServices(services =>
{
// Override with test configuration
services.AddBitzOrcasSqlSugar(opt =>
opt.ConnectionString = TestDatabase);
});
}
}

Test categories

CategoryDescription
Endpoint testsHTTP request → response verification
Auth testsJWT/HMAC/API Key scheme validation
Tenant testsMulti-tenant data isolation
Pipeline testsMediator behavior chain
Seed data testsCSV seeding correctness

Example: Endpoint test

[Fact]
public async Task CreateNote_Returns201()
{
var client = _factory.CreateClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", _testToken);
var response = await client.PostAsJsonAsync("/api/notes",
new { title = "Test", content = "Content" });
response.StatusCode.ShouldBe(HttpStatusCode.Created);
var note = await response.Content.ReadFromJsonAsync<NoteDto>();
note.ShouldNotBeNull();
note.Title.ShouldBe("Test");
}

Running

Terminal window
dotnet test tests/BitzOrcas.Integration.Tests

Requires Docker (SQL Server + RabbitMQ) for full integration tests.