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);
        }