public async Task HandleAsync_WhenPollDoesNotExist_ShouldCallNotFound() { // Arrange const int pollId = 1; const string expectedResultMessage = "Poll not found"; ILoggerService <DeletePollUseCase> loggerServiceStub = A.Fake <ILoggerService <DeletePollUseCase> >(); IPollGateway pollGatewayStub = A.Fake <IPollGateway>(); A.CallTo(() => pollGatewayStub.GetAsync(pollId)) .Returns((Poll)null); IDeletePollOutputPort OutputPortMock = A.Fake <IDeletePollOutputPort>(); var useCase = new DeletePollUseCase(loggerServiceStub, pollGatewayStub); // Act await useCase.HandleAsync(pollId, OutputPortMock); // Assert A.CallTo( () => OutputPortMock.NotFound( A <string> .That.Contains(expectedResultMessage))) .MustHaveHappenedOnceExactly(); }
public async Task HandleAsync(int id, IDeletePollOutputPort output) { Poll poll = await this.pollGateway.GetAsync(id); if (poll is null) { output.NotFound("Poll not found"); this.loggerService.LogInformation("Cannot retrieve a poll with {@id}", id); return; } await this.pollGateway.DeleteAsync(poll); output.Success(); }