fixes and tweaks
This commit is contained in:
@@ -32,12 +32,31 @@ public class VerspakkettenControllerTests(LutraApiFactory factory)
|
||||
Id = Guid.NewGuid(), Naam = "AH",
|
||||
CreatedAt = DateTime.UtcNow, ModifiedAt = DateTime.UtcNow
|
||||
});
|
||||
await SeedAsync(new Verspakket
|
||||
var verspakket = new Verspakket
|
||||
{
|
||||
Id = Guid.NewGuid(), Naam = "Lente Pakket", AantalPersonen = 2,
|
||||
SupermarktId = supermarkt.Id,
|
||||
CreatedAt = DateTime.UtcNow, ModifiedAt = DateTime.UtcNow
|
||||
};
|
||||
verspakket.AddFoto(new VerspakketFoto
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
Data = [1, 2, 3],
|
||||
IsMainImage = true,
|
||||
VerspakketId = verspakket.Id,
|
||||
CreatedAt = DateTime.UtcNow,
|
||||
ModifiedAt = DateTime.UtcNow
|
||||
});
|
||||
verspakket.AddFoto(new VerspakketFoto
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
Data = [4, 5, 6],
|
||||
IsMainImage = false,
|
||||
VerspakketId = verspakket.Id,
|
||||
CreatedAt = DateTime.UtcNow,
|
||||
ModifiedAt = DateTime.UtcNow
|
||||
});
|
||||
await SeedAsync(verspakket);
|
||||
|
||||
var response = await Client.GetAsync("/api/verspakketten");
|
||||
|
||||
@@ -45,6 +64,8 @@ public class VerspakkettenControllerTests(LutraApiFactory factory)
|
||||
var body = await response.Content.ReadFromJsonAsync<GetVerspakketten.Response>();
|
||||
body!.Verspakketten.Should().HaveCount(1);
|
||||
body.Verspakketten.First().Naam.Should().Be("Lente Pakket");
|
||||
body.Verspakketten.First().Foto.Should().NotBeNull();
|
||||
body.Verspakketten.First().Foto!.IsMainImage.Should().BeTrue();
|
||||
}
|
||||
|
||||
// ── GET /api/verspakketten/{id} ───────────────────────────────────────────
|
||||
@@ -91,8 +112,8 @@ public class VerspakkettenControllerTests(LutraApiFactory factory)
|
||||
CreatedAt = DateTime.UtcNow, ModifiedAt = DateTime.UtcNow
|
||||
});
|
||||
|
||||
var command = new CreateVerspakket.Command("Herfst Pakket", 1499, 3, supermarkt.Id, null);
|
||||
var response = await Client.PostAsJsonAsync("/api/verspakketten", command);
|
||||
var request = new CreateVerspakketRequest("Herfst Pakket", 1499, 3, supermarkt.Id);
|
||||
var response = await Client.PostAsJsonAsync("/api/verspakketten", request);
|
||||
|
||||
response.StatusCode.Should().Be(HttpStatusCode.Created);
|
||||
var body = await response.Content.ReadFromJsonAsync<CreateVerspakket.Response>();
|
||||
@@ -136,8 +157,8 @@ public class VerspakkettenControllerTests(LutraApiFactory factory)
|
||||
[Fact]
|
||||
public async Task Post_ReturnsBadRequest_WhenSupermarktDoesNotExist()
|
||||
{
|
||||
var command = new CreateVerspakket.Command("Winter Pakket", 999, 2, Guid.NewGuid(), null);
|
||||
var response = await Client.PostAsJsonAsync("/api/verspakketten", command);
|
||||
var request = new CreateVerspakketRequest("Winter Pakket", 999, 2, Guid.NewGuid());
|
||||
var response = await Client.PostAsJsonAsync("/api/verspakketten", request);
|
||||
|
||||
response.StatusCode.Should().Be(HttpStatusCode.BadRequest);
|
||||
}
|
||||
|
||||
@@ -20,14 +20,14 @@ public abstract class IntegrationTestBase : IClassFixture<LutraApiFactory>, IAsy
|
||||
}
|
||||
|
||||
/// <summary>Seed data or perform setup before each test.</summary>
|
||||
public virtual Task InitializeAsync()
|
||||
public virtual ValueTask InitializeAsync()
|
||||
{
|
||||
Factory.EnsureSchemaCreated();
|
||||
return Task.CompletedTask;
|
||||
return ValueTask.CompletedTask;
|
||||
}
|
||||
|
||||
/// <summary>Reset database state after each test.</summary>
|
||||
public async Task DisposeAsync()
|
||||
public async ValueTask DisposeAsync()
|
||||
{
|
||||
using var scope = Factory.Services.CreateScope();
|
||||
var db = scope.ServiceProvider.GetRequiredService<ILutraDbContext>() as LutraDbContext;
|
||||
@@ -37,10 +37,10 @@ public abstract class IntegrationTestBase : IClassFixture<LutraApiFactory>, IAsy
|
||||
db.Verspaketten.RemoveRange(db.Verspaketten);
|
||||
db.Supermarkten.RemoveRange(db.Supermarkten);
|
||||
await db.SaveChangesAsync(CancellationToken.None);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected async Task<T> SeedAsync<T>(T entity) where T : class
|
||||
protected async ValueTask<T> SeedAsync<T>(T entity) where T : class
|
||||
{
|
||||
using var scope = Factory.Services.CreateScope();
|
||||
var db = scope.ServiceProvider.GetRequiredService<ILutraDbContext>() as LutraDbContext;
|
||||
|
||||
@@ -13,11 +13,14 @@
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="FluentAssertions" Version="8.9.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.6" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.6" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
|
||||
<PackageReference Include="xunit" Version="2.9.3" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.4" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="10.0.7" />
|
||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="10.0.7" />
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.4.0" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.5">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="xunit.v3" Version="3.2.2" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
Reference in New Issue
Block a user