public async Task VerifyTableListInPartitionAsync_ResultsFound_ReturnsListOfModels() { // Arrange var queryModel = new DbViewTimestampTableListModel(); var returnModel = new List <string> { "Result 1" }; _dbViewAccess .Setup(x => x.VerifyTableListInPartitionAsync(It.IsAny <DbViewTimestampTableListModel>())) .ReturnsAsync(() => returnModel); // Act Db2DbViewController controller = new Db2DbViewController(_dbViewAccess.Object); var result = await controller.VerifyTableListInPartitionAsync(queryModel); // Assert var resultValue = result.Value as ApiOkResponse; var resultValueResult = resultValue.Result.As <List <string> >(); resultValueResult.Count.Should().Equals(1); resultValueResult.First().Should().BeOfType <string>(); }
public async Task VerifyTableListInPartitionAsync_AccessMethodThrowsError_LogEventOccursAndErrorStatusCodeReturnedNoExceptionThrown() { // Arrange var exceptionToThrow = new Exception("exception"); var queryModel = new DbViewTimestampTableListModel(); _dbViewAccess.Setup(x => x.VerifyTableListInPartitionAsync(queryModel)) .ThrowsAsync(exceptionToThrow); Db2DbViewController controller = new Db2DbViewController(_dbViewAccess.Object); // Set up our Error Handling middleware as a wrapper (the same way it will wrap all incoming Requests) var middleware = new ErrorWrappingMiddleware(async(innerHttpContext) => { var result = await controller.VerifyTableListInPartitionAsync(queryModel); }, _logger.Object); var context = new DefaultHttpContext(); context.Response.Body = new MemoryStream(); //Act await middleware.Invoke(context); context.Response.Body.Seek(0, SeekOrigin.Begin); var reader = new StreamReader(context.Response.Body); var streamText = reader.ReadToEnd(); var objResponse = JsonConvert.DeserializeObject <ApiResponse>(streamText); //Assert _logger.Verify(x => x.LogError(exceptionToThrow, It.IsAny <string>()), Times.Once); objResponse .Should() .BeEquivalentTo(new ApiResponse(HttpStatusCode.InternalServerError, "exception")); context.Response.StatusCode .Should() .Be((int)HttpStatusCode.InternalServerError); }