示例#1
0
 public string FetchCountryCode(CountryCodeRequest request)
 {
     return(_countries.First(country =>
                             request.State.Length > 0
             ? country.country == request.Country && country.state == request.State && country.name == request.City
             : country.country == request.Country && country.name == request.City).id.ToString());
 }
示例#2
0
        private static string GetCountryCode(CountryCodeRequest request)
        {
            ICountryFetchCountryCodeUseCase usecase = new FetchCountryCodesUseCase(Codes);

            usecase.Execute(request, CodePresenter);
            return(CodePresenter.SuccessContent);
        }
        public async Task <List <Domain.Classes.Weather> > Get(CountryCodeRequest request)
        {
            var codePresenter    = new PropertyPresenter <string, ErrorOutput>();
            var weatherPresenter = new PropertyPresenter <List <Domain.Classes.Weather>, ErrorOutput>();

            _countryFetchCountryCodeUseCase.Execute(request, codePresenter);
            var code = codePresenter.SuccessContent;
            await _fetchWeatherByCityCodeUseCase.Execute(code, weatherPresenter);

            var result = weatherPresenter.SuccessContent;

            return(result);
        }
示例#4
0
        public async Task GetCountryByCode_ExceptionOccured_ReturnsServiceUnavailableError()
        {
            //Arrange
            var countryCodeRequest = new CountryCodeRequest()
            {
                CountryCode = "RO"
            };

            _countryRepository.Setup(x => x.GetCountryByCode(countryCodeRequest.CountryCode)).Throws(new ApiException());

            //Act
            var response = await _countriesController.GetByCountryCode(countryCodeRequest);

            Assert.AreEqual(HttpStatusCode.ServiceUnavailable, response.StatusCode);
        }
示例#5
0
        public async Task GetCountryByCode_NoMatchingCountry_ReturnsNotFound()
        {
            //Arrange
            var countryCodeRequest = new CountryCodeRequest()
            {
                CountryCode = "RO"
            };

            _countryRepository.Setup(x => x.GetCountryByCode(countryCodeRequest.CountryCode)).Returns(Task.FromResult <CountryModelDto>(null));

            //Act
            var response = await _countriesController.GetByCountryCode(countryCodeRequest);

            Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
        }
        public void FetchCountryCode_StateUnderTest_ExpectedBehavior()
        {
            // Arrange
            var countryCodes           = new CountryCodes();
            CountryCodeRequest request = new CountryCodeRequest()
            {
                Country = "ZA",
                State   = "",
                City    = "Johannesburg"
            };

            // Act
            var result = countryCodes.FetchCountryCode(
                request);

            // Assert
            Assert.True(false);
        }
示例#7
0
        public async Task GetCountryByCode_ValidCountryCode_ReturnsTheRightResponse(string countryCode)
        {
            //Arrange
            var countryCodeRequest = new CountryCodeRequest()
            {
                CountryCode = countryCode
            };

            _countryRepository.Setup(x => x.GetCountryByCode(countryCodeRequest.CountryCode)).Returns(Task.FromResult(CountryModelDto));

            //Act
            var response = await _countriesController.GetByCountryCode(countryCodeRequest);

            //Assert
            Assert.AreEqual(HttpStatusCode.OK, response.StatusCode);

            var responseObject   = GetDynamicObjectFromResponse(response);
            var expectedResponse = CountryModel;

            AssertCountryDetails(expectedResponse, responseObject);
        }
        public async Task <HttpResponseMessage> GetByCountryCode(CountryCodeRequest requestModel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var country = await _countryService.GetCountryByCode(requestModel.CountryCode);

                    if (country == null)
                    {
                        return(Request.CreateResponse(HttpStatusCode.NotFound, "Country not found"));
                    }

                    return(Request.CreateResponse(HttpStatusCode.OK, country));
                }
                catch (ApiException e)
                {
                    return(Request.CreateResponse(HttpStatusCode.ServiceUnavailable, e.Message));
                }
            }

            return(Request.CreateResponse((HttpStatusCode)AdditionalHttpStatusCodes.UnprocessableEntity, "Invalid country code"));
        }
示例#9
0
 public void Execute(CountryCodeRequest inputTo, IRespondWithSuccessOrError <string, ErrorOutput> presenter)
 {
     presenter.Respond(_countryCodes.FetchCountryCode(inputTo));
 }