How to write unit test case for a method which doesnot return anything.
My masstransit consumer just insert data to database
public async Task Consume(ConsumeContext<CreateEvent> context)
{
var existing = await _dbContext.Mytable.SingleOrDefaultAsync(c => c.Id.Equals(context.Message.Id));
if (existing == null)
{
var newData = new Table
{
Id = context.Message.Id,
Description = context.Message.Description,
};
await _dbContext.table.AddAsync(newData);
await _dbContext.SaveChangesAsync();
}
_logger.LogInformation($"{context.Message.Id.ToUpperInvariant()} already exists.");
await Task.CompletedTask;
}
What needs to be covered as part of unit test case here?
Assert.That(await harness.Published.Any<CreateEvent>(), Is.True);
dbContext.Setup(r => r.Table).ReturnsDbSet(mysampleEntities);
dbContext.Setup(r => r.SaveChangesAsync(It.IsAny<CancellationToken>())).ReturnsAsync(1).Verifiable();
dbContext.Verify(); // this gives me error "This mock failed"
Now I am just checking this event is published.
await Task.CompletedTask; - how to write unit test case for task.completedtask