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