Optionally add a beoordeling while adding a verspakket

This commit is contained in:
moarten
2026-04-24 21:09:45 +02:00
parent 3a1071dadc
commit 5e1445d532
8 changed files with 136 additions and 15 deletions
@@ -1,5 +1,6 @@
using FluentAssertions;
using Lutra.Application.Interfaces;
using Lutra.Application.Models.Verspakketten;
using Lutra.Application.Verspakketten;
using Moq;
using Moq.EntityFrameworkCore;
@@ -30,7 +31,7 @@ public class CreateVerspakketHandlerTests
_contextMock.Setup(c => c.Verspaketten).ReturnsDbSet(new List<Domain.Entities.Verspakket>());
_contextMock.Setup(c => c.SaveChangesAsync(It.IsAny<CancellationToken>())).ReturnsAsync(1);
var command = new CreateVerspakket.Command("Lente Pakket", 1299, 2, supermarktId);
var command = new CreateVerspakket.Command("Lente Pakket", 1299, 2, supermarktId, null);
var result = await _handler.Handle(command, CancellationToken.None);
@@ -43,7 +44,7 @@ public class CreateVerspakketHandlerTests
{
_contextMock.Setup(c => c.Supermarkten).ReturnsDbSet(new List<Domain.Entities.Supermarkt>());
var command = new CreateVerspakket.Command("Lente Pakket", 1299, 2, Guid.NewGuid());
var command = new CreateVerspakket.Command("Lente Pakket", 1299, 2, Guid.NewGuid(), null);
var act = () => _handler.Handle(command, CancellationToken.None);
@@ -68,7 +69,7 @@ public class CreateVerspakketHandlerTests
.Callback<Domain.Entities.Verspakket, CancellationToken>((v, _) => savedVerspakket = v);
_contextMock.Setup(c => c.SaveChangesAsync(It.IsAny<CancellationToken>())).ReturnsAsync(1);
var command = new CreateVerspakket.Command("Zomer Pakket", 999, 4, supermarktId);
var command = new CreateVerspakket.Command("Zomer Pakket", 999, 4, supermarktId, null);
await _handler.Handle(command, CancellationToken.None);
@@ -78,4 +79,45 @@ public class CreateVerspakketHandlerTests
savedVerspakket.AantalPersonen.Should().Be(4);
savedVerspakket.SupermarktId.Should().Be(supermarktId);
}
[Fact]
public async Task Handle_WithBeoordeling_CreatesVerspakketWithBeoordeling()
{
var supermarktId = Guid.NewGuid();
var supermarkten = new List<Domain.Entities.Supermarkt>
{
new() { Id = supermarktId, Naam = "Jumbo", CreatedAt = DateTime.UtcNow, ModifiedAt = DateTime.UtcNow }
};
Domain.Entities.Verspakket? savedVerspakket = null;
_contextMock.Setup(c => c.Supermarkten).ReturnsDbSet(supermarkten);
_contextMock.Setup(c => c.Verspaketten).ReturnsDbSet(new List<Domain.Entities.Verspakket>());
_contextMock
.Setup(c => c.Verspaketten.AddAsync(It.IsAny<Domain.Entities.Verspakket>(), It.IsAny<CancellationToken>()))
.Callback<Domain.Entities.Verspakket, CancellationToken>((v, _) => savedVerspakket = v);
_contextMock.Setup(c => c.SaveChangesAsync(It.IsAny<CancellationToken>())).ReturnsAsync(1);
var command = new CreateVerspakket.Command(
"Zomer Pakket",
999,
4,
supermarktId,
new Beoordeling
{
CijferSmaak = 8,
CijferBereiden = 7,
Aanbevolen = true,
Tekst = "Lekker"
});
await _handler.Handle(command, CancellationToken.None);
savedVerspakket.Should().NotBeNull();
savedVerspakket!.Beoordelingen.Should().ContainSingle();
var beoordeling = savedVerspakket.Beoordelingen.Single();
beoordeling.CijferSmaak.Should().Be(8);
beoordeling.CijferBereiden.Should().Be(7);
beoordeling.Aanbevolen.Should().BeTrue();
beoordeling.Tekst.Should().Be("Lekker");
}
}