public async Task FindClosestWhenInputIsInvalid() { _apiValidationServiceMock.Setup(x => x.ValidatePharmacyInput(It.IsAny <PharmacyInputModel>())).Returns(() => new List <string> { "Latitude and Longtitude fields are required" }); _pharmacyServicemock.Setup(x => x.FindClosestAsync(It.IsAny <PharmacyInputModel>())).ReturnsAsync(() => new PharmacyModel()); var pharmacyController = new PharmacyController(_apiValidationServiceMock.Object, _pharmacyServicemock.Object, _loggerMock.Object); var actionResult = await pharmacyController.FindClosestPharmacy(null); Assert.IsAssignableFrom <ActionResult <PharmacyModel> >(actionResult); Assert.Equal(400, ((ObjectResult)actionResult.Result).StatusCode); }
public async Task FindClosestWhenServiceThrowsUncaughtException() { var testPharmacyInput = new PharmacyInputModel { Latitude = 23.3, Longitude = -42.9 }; _apiValidationServiceMock.Setup(x => x.ValidatePharmacyInput(It.IsAny <PharmacyInputModel>())).Returns(() => new List <string>()); _pharmacyServicemock.Setup(x => x.FindClosestAsync(It.IsAny <PharmacyInputModel>())).Throws(new Exception()); var pharmacyController = new PharmacyController(_apiValidationServiceMock.Object, _pharmacyServicemock.Object, _loggerMock.Object); var actionResult = await pharmacyController.FindClosestPharmacy(testPharmacyInput); Assert.IsAssignableFrom <ActionResult <PharmacyModel> >(actionResult); Assert.Equal(500, ((ObjectResult)actionResult.Result).StatusCode); }