コード例 #1
0
        public async Task Run_WithNoBodyInRequest_ReturnsBadRequest()
        {
            // arrange
            var req    = new DefaultHttpRequest(new DefaultHttpContext());
            var logger = TestFactory.CreateLogger(LoggerTypes.List);

            DocumentDetails documentDetails = null;

            _documentDetailsCollector.Setup(x => x.AddAsync(It.IsAny <DocumentDetails>(), default(CancellationToken)))
            .Callback((DocumentDetails details, CancellationToken token) => documentDetails = details);

            // act
            var result = await DocumentRequest.Run(req, _documentDetailsCollector.Object, logger);

            // assert
            result.Should().BeOfType <BadRequestObjectResult>();
        }
コード例 #2
0
        public async Task Run_DbSaveError_ReturnsStatus500InternalServerError()
        {
            // arrange
            var requestBody = "doc123.txt";
            var req         = TestFactory.CreateHttpRequest($"{{\"body\": \"{requestBody}\"}}");
            var logger      = TestFactory.CreateLogger(LoggerTypes.List);

            _documentDetailsCollector.Setup(x => x.AddAsync(It.IsAny <DocumentDetails>(), default(CancellationToken)))
            .Throws(new Exception("Error calling Cosmos DB"));

            // act
            var result = await DocumentRequest.Run(req, _documentDetailsCollector.Object, logger);

            // assert
            result.Should().BeOfType <StatusCodeResult>();
            var statusCode = ((StatusCodeResult)result).StatusCode;

            statusCode.Should().Be(500);
        }
コード例 #3
0
        public async Task Run_WithValidRequest_ReturnsIdAndSavesToDb()
        {
            // arrange
            var requestBody = "doc123.txt";
            var req         = TestFactory.CreateHttpRequest($"{{\"body\": \"{requestBody}\"}}");
            var logger      = TestFactory.CreateLogger(LoggerTypes.List);

            DocumentDetails documentDetails = null;

            _documentDetailsCollector.Setup(x => x.AddAsync(It.IsAny <DocumentDetails>(), default(CancellationToken)))
            .Callback((DocumentDetails details, CancellationToken token) => documentDetails = details);

            // act
            var result = await DocumentRequest.Run(req, _documentDetailsCollector.Object, logger);

            // assert
            result.Should().BeOfType <OkObjectResult>();
            var resultBody = (string)((OkObjectResult)result).Value;

            resultBody.Should().NotBeNullOrEmpty();
            documentDetails.Should().NotBeNull();
            documentDetails.Id.Should().Be(resultBody);
            documentDetails.Body.Should().Be(requestBody);
        }