refactor(HistoryTests): Verbesserung von HistoryTests mit realistischen Daten und konsistenter Struktur

- Verwendung tatsächlicher Umschlag- und Empfängerdaten anstelle von magischen Zahlen
- Ersetzen von fest codierten EnvelopeId und UserReference durch dynamisch erstellte Entitäten
- Aktualisierung von ReadHistoryQuery zur Verwendung der Objektinitialisierungssyntax
- Fügen Sie CancellationToken zu Mediator.Send-Aufrufen hinzu, um Konsistenz zu gewährleisten
- Verwenden Sie EnvelopeHistoryDto explizit in der Assertion
- Verbessern Sie die Lesbarkeit und den Realismus des Tests, indem Sie vollständige Voraussetzungdaten einrichten
- Korrigieren Sie die Schreibweise im Kommentar: „EnvelopeReceiver” -> „envelope receiver”
This commit is contained in:
tekh 2025-09-03 10:08:42 +02:00
parent fc443fb87f
commit f6e34c6d91
2 changed files with 42 additions and 22 deletions

View File

@ -54,25 +54,23 @@ public class EnvelopeHistory : IHasEnvelope, IHasReceiver
[ForeignKey("EnvelopeId")]
public virtual Envelope
#if NET
?
?
#endif
Envelope { get; set; }
Envelope { get; set; }
[ForeignKey("UserReference")]
public virtual User
#if NET
?
#endif
Sender
{ get; set; }
Sender { get; set; }
[ForeignKey("UserReference")]
public virtual Receiver
#if NET
?
#endif
Receiver
{ get; set; }
Receiver { get; set; }
#if NETFRAMEWORK
[NotMapped]

View File

@ -1,4 +1,5 @@
using EnvelopeGenerator.Application.Extensions;
using EnvelopeGenerator.Application.Dto.EnvelopeHistory;
using EnvelopeGenerator.Application.Extensions;
using EnvelopeGenerator.Application.Histories.Commands;
using EnvelopeGenerator.Application.Histories.Queries;
using EnvelopeGenerator.Domain.Constants;
@ -35,7 +36,7 @@ public class HistoryTests : TestBase
var createReceiverCmd = this.CreateReceiverCommand();
(var receiver, _) = await Mediator.Send(createReceiverCmd);
// Create EnvelopeReceiver
// Create envelope receiver
var envRcv = this.CreateEnvelopeReceiver(envelope.Id, receiver.Id);
envRcv = await GetRepository<EnvelopeReceiver>().CreateAsync(envRcv, cancel);
@ -53,38 +54,59 @@ public class HistoryTests : TestBase
[Test]
public async Task ReadHistory_Should_Filter_By_Status()
{
// Arrange
/// Arrange
CancellationToken cancel = default;
// Create envelope
var envelope = FakeEnvelope;
envelope = await GetRepository<Envelope>().CreateAsync(envelope, cancel);
// Create receiver
var createReceiverCmd = this.CreateReceiverCommand();
(var receiver, _) = await Mediator.Send(createReceiverCmd);
// Create envelope receiver
var envRcv = this.CreateEnvelopeReceiver(envelope.Id, receiver.Id);
envRcv = await GetRepository<EnvelopeReceiver>().CreateAsync(envRcv, cancel);
var createCmd1 = new CreateHistoryCommand
{
EnvelopeId = 2,
UserReference = "UserX",
Status = EnvelopeStatus.EnvelopeCreated
EnvelopeId = envelope.Id,
UserReference = receiver.EmailAddress,
Status = EnvelopeStatus.AccessCodeRequested
};
var createCmd2 = new CreateHistoryCommand
{
EnvelopeId = 2,
UserReference = "UserX",
Status = EnvelopeStatus.EnvelopePartlySigned
EnvelopeId = envelope.Id,
UserReference = receiver.EmailAddress,
Status = EnvelopeStatus.EnvelopeCompletelySigned
};
await Mediator.Send(createCmd1);
await Mediator.Send(createCmd2);
await Mediator.Send(createCmd1, cancel);
await Mediator.Send(createCmd2, cancel);
// Act
var result = await Mediator.Send(new ReadHistoryQuery(2, EnvelopeStatus.EnvelopePartlySigned));
var readQuery = new ReadHistoryQuery()
{
EnvelopeId = envelope.Id,
Status = EnvelopeStatus.EnvelopeCompletelySigned
};
var result = await Mediator.Send(readQuery, cancel);
// Assert
Assert.That(result, Has.Exactly(1).Items);
Assert.That(result, Has.All.Matches<EnvelopeGenerator.Application.Dto.EnvelopeHistory.EnvelopeHistoryDto>(
r => r.Status == EnvelopeStatus.EnvelopePartlySigned));
Assert.That(result, Has.All.Matches<EnvelopeHistoryDto>(r => r.Status == EnvelopeStatus.EnvelopeCompletelySigned));
}
[Test]
public async Task ReadHistory_Should_Return_Empty_When_No_Record()
{
// Act
var result = await Mediator.Send(new ReadHistoryQuery(999));
var result = await Mediator.Send(new ReadHistoryQuery()
{
EnvelopeId = 9999
});
// Assert
Assert.That(result, Is.Empty);