public void when_ProcessImageUseCase_ExecuteGet_method_is_called_then_it_calls_the_gateway() { //act _processImageUseCase.ExecuteGet(new GetProcessImageRequest()); // no need for arrange, since it does not matter how the request object got set up for this test. //assert _mockGateway.Verify(g => g.RetrieveImage(It.IsAny <string>()), Times.Once); }
public IActionResult GetProcessImage([FromRoute] GetProcessImageRequest requestData) { _logger.LogInformation($"Get ProcessImage request for Process Type: {requestData.processType ?? "null"}, Process Reference: {requestData.processRef ?? "null"}, Image Id: {requestData.imageId ?? "null"} and File Extension: {requestData.fileExtension ?? "null"}"); var validationResult = _getValidator.Validate(requestData); if (validationResult.IsValid) { try { var usecaseResponse = _processImageUseCase.ExecuteGet(requestData); return(Ok(usecaseResponse)); } catch (ImageNotFound ex) { return(NotFound($"The image with ID = {requestData.imageId} has not been found.")); throw ex; } catch (Exception ex) { return(StatusCode(500, "An error has occured while processing the request - " + ex.Message + " " + ex.InnerException)); } } _logger.LogInformation($"Get ProcessImage request for Process Type: {requestData.processType ?? "null"}, Process Reference: {requestData.processRef ?? "null"}, Image Id: {requestData.imageId ?? "null"} and File Extension: {requestData.fileExtension ?? "null"} did not pass the validation:\n\n{validationResult.Errors.Select(e => $"Validation error for: '{e.PropertyName}', message: '{e.ErrorMessage}'.").Aggregate((acc, m) => acc + "\n" + m)}"); return(BadRequest(validationResult.Errors)); }