public async Task Throw500WhenSendingToNutritionTopicFails() { // Arrange var nutrition = new mdl.Nutrition { NutritionDate = "2019-12-31" }; var foodResponse = new FoodResponseObject { }; _mockDateValidator.Setup(x => x.IsNutritionDateValid(It.IsAny <string>())).Returns(true); _mockFitbitApiService.Setup(x => x.GetFoodLogs(It.IsAny <string>())).ReturnsAsync(foodResponse); _mockMapper.Setup(x => x.Map(It.IsAny <FoodResponseObject>(), It.IsAny <mdl.Nutrition>())).Verifiable(); _mockServiceBusHelpers.Setup(x => x.SendMessageToTopic(It.IsAny <string>(), It.IsAny <mdl.Nutrition>())).ThrowsAsync(new Exception()); // Act var response = await _func.Run(_mockHttpRequest.Object, _mockLogger.Object, nutrition.NutritionDate); // Assert Assert.Equal(typeof(StatusCodeResult), response.GetType()); var responseAsStatusCodeResult = (StatusCodeResult)response; Assert.Equal(500, responseAsStatusCodeResult.StatusCode); _mockServiceBusHelpers.Verify(x => x.SendMessageToQueue(It.IsAny <string>(), It.IsAny <Exception>()), Times.Once); }
public async Task <FoodResponseObject> CreateOneAsync(CreateFoodDto t) { var foodGroup = await _foodGroupRepository.FindOneByIdAsync(t.FoodGroupId); if (foodGroup == null) { throw new HttpResponseException(HttpStatusCode.NotFound, "FoodGroup not found"); } var found = await _foodRepository.FindOneByNameAsync(t.Name); if (found != null) { throw new HttpResponseException(HttpStatusCode.NotFound, $"Food with name {t.Name} already exists"); } var newFood = new Food { Name = t.Name, FoodGroupId = foodGroup.Id }; await _foodRepository.CreateOneAsync(newFood); return(FoodResponseObject.FromEntity(newFood)); }
public async Task <FoodResponseObject> FindOneByNameAsync(string name) { var found = await _foodRepository.FindOneByNameAsync(name); if (found == null) { throw new HttpResponseException(HttpStatusCode.NotFound, $"Food with name {name} was not found"); } return(FoodResponseObject.FromEntity(found)); }
public async Task <FoodResponseObject> FindOneByIdAsync(int id) { var found = await _foodRepository.FindOneByIdAsync(id); if (found == null) { throw new HttpResponseException(HttpStatusCode.NotFound, "Food not found"); } return(FoodResponseObject.FromEntity(found)); }
public async Task ReturnBadRequestResultWhenProvidedDateIsInvalid(string invalidDateInput) { // Arrange var foodResponse = new FoodResponseObject(); byte[] byteArray = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(foodResponse)); MemoryStream memoryStream = new MemoryStream(byteArray); _mockHttpRequest.Setup(r => r.Body).Returns(memoryStream); _mockDateValidator.Setup(x => x.IsNutritionDateValid(invalidDateInput)).Returns(false); // Act var response = await _func.Run(_mockHttpRequest.Object, _mockLogger.Object, invalidDateInput); // Assert Assert.Equal(typeof(BadRequestResult), response.GetType()); var responseAsStatusCodeResult = (StatusCodeResult)response; Assert.Equal(400, responseAsStatusCodeResult.StatusCode); _mockServiceBusHelpers.Verify(x => x.SendMessageToTopic(It.IsAny <string>(), It.IsAny <mdl.Nutrition>()), Times.Never); _mockServiceBusHelpers.Verify(x => x.SendMessageToQueue(It.IsAny <string>(), It.IsAny <Exception>()), Times.Never); }
public async Task ReturnOkObjectResultWhenMappedNutritionLogIsSentToNutritionTopic() { // Arrange var nutrition = new mdl.Nutrition { NutritionDate = "2019-12-31" }; var foodResponse = new FoodResponseObject { }; _mockDateValidator.Setup(x => x.IsNutritionDateValid(It.IsAny <string>())).Returns(true); _mockFitbitApiService.Setup(x => x.GetFoodLogs(It.IsAny <string>())).ReturnsAsync(foodResponse); _mockMapper.Setup(x => x.Map(It.IsAny <FoodResponseObject>(), It.IsAny <mdl.Nutrition>())).Verifiable(); _mockServiceBusHelpers.Setup(x => x.SendMessageToTopic(It.IsAny <string>(), It.IsAny <mdl.Nutrition>())).Returns(Task.CompletedTask); // Act var response = await _func.Run(_mockHttpRequest.Object, _mockLogger.Object, nutrition.NutritionDate); // Assert Assert.Equal(typeof(OkResult), response.GetType()); _mockServiceBusHelpers.Verify(x => x.SendMessageToTopic(It.IsAny <string>(), It.IsAny <mdl.Nutrition>()), Times.Once); _mockServiceBusHelpers.Verify(x => x.SendMessageToQueue(It.IsAny <string>(), It.IsAny <Exception>()), Times.Never); }