public async Task Run_CosmosDbReturnsNullCollectionOfDocuments_Return404NotFound()
        {
            //arrange
            List <IntermediaryServiceDocument> docs = null;

            //act
            var actionResult = await Function4.Run(_mockHttpRequest.Object, docs, _mockLogger);

            //assert
            Assert.IsTrue(_mockLogger.GetLogs().Where(m => m.Contains(UserFriendlyMessages.DocumentNotFound)).Count() == 1);
            Assert.IsInstanceOfType(actionResult, typeof(NotFoundObjectResult));
            StringAssert.Contains(((NotFoundObjectResult)actionResult).Value.ToString(), UserFriendlyMessages.DocumentNotFound);
        }
Exemple #2
0
        public async Task Run_BodyDoesNotContainOneOfTheThree_Return400BadRequest(string body)
        {
            //arrange
            var mockHttpRequest = MockHttpRequestGenerator.CreateWithBodyString(body);

            //act
            var actionResult = await Function3.Run(mockHttpRequest.Object, new IntermediaryServiceDocument(), _mockLogger);

            //assert
            Assert.IsTrue(_mockLogger.GetLogs().Where(m => m.Contains(UserFriendlyMessages.ErrorProcessingBody)).Count() == 1);
            Assert.IsInstanceOfType(actionResult, typeof(BadRequestObjectResult));
            StringAssert.Contains(((BadRequestObjectResult)actionResult).Value.ToString(), UserFriendlyMessages.ErrorProcessingBody);
        }
        public async Task Run_CatchAnyExceptionsTricklingUpToTopLevelFunctionCode()
        {
            //arrange
            var mockHttpRequest = new Mock <HttpRequest>();

            //act
            var actionResult = _function1.Run(mockHttpRequest.Object, out _cosmosDocument, _mockLogger);

            //assert
            Assert.IsTrue(_mockLogger.GetLogs().Where(m => m.Contains(UserFriendlyMessages.UnhandledException)).Any());
            Assert.IsInstanceOfType(actionResult, typeof(StatusCodeResult));
            Assert.IsTrue(String.Equals(((StatusCodeResult)actionResult).StatusCode, 500));
            Assert.IsNull(_cosmosDocument); //Make sure cosmos document won't be saved
        }
        public async Task PostAsync_ThrowsException_Logged()
        {
            //arrange
            var stubbedThirdPartyServiceHttpClient = new StubbedThirdPartyServiceHttpClient(_mockHttpClient.Object);
            var document = new Document {
                Body = "Some text"
            };

            //act
            await Assert.ThrowsExceptionAsync <NullReferenceException>(async() => await stubbedThirdPartyServiceHttpClient.PostAsyncSuccessful(document, "request/1", _mockLogger));

            //assert
            Assert.IsTrue(_mockLogger.GetLogs().Any(m => m.Contains(UserFriendlyMessages.ThirdPartyCommunicationFailure)));
        }