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