public void MethodShouldNotThrowWhenStatusCodeIsNotOKAndEVisitorDoesNotRespondWithAppropriateResponseObject() { var client = new Client(new Core.Authentication("username", "password")); RestResponse response = new RestResponse(); CitiesResponse cityResponse = new CitiesResponse(); cityResponse.Records = new List <City>(); cityResponse.Records.Add(new Models.City()); response.Content = JsonConvert.SerializeObject(cityResponse); response.StatusCode = System.Net.HttpStatusCode.Ambiguous; var clientResponse = client.HandleResponse <CitiesResponse>(response); Assert.IsTrue(true); }
public void MethodShouldReturnWhateverStatusCodeServiceReturned() { var client = new Client(new Core.Authentication("username", "password")); RestResponse response = new RestResponse(); CitiesResponse cityResponse = new CitiesResponse(); cityResponse.Records = new List <City>(); cityResponse.Records.Add(new Models.City()); response.Content = JsonConvert.SerializeObject(cityResponse); response.StatusCode = System.Net.HttpStatusCode.Ambiguous; var clientResponse = client.HandleResponse <CitiesResponse>(response); Assert.AreEqual(clientResponse.StatusCode, System.Net.HttpStatusCode.Ambiguous); }
public void GivenInValidCountryName_WhenCities_WeGetCities() { var newDataSet = new TableName { Table = new List <Details>() }; var mockData = new CitiesResponse { NewDataSet = newDataSet }; A.CallTo(() => SoapBasedServiceGateway.GetCities(A <string> .Ignored)) .Returns(mockData); var response = _sut.GetCities("Australia"); response.Cities.Count.Should().Be(0); }
public void ErrorObjectShouldBeNullIfStatusCodeIsOK() { var client = new Client(new Core.Authentication("username", "password")); RestResponse response = new RestResponse(); CitiesResponse cityResponse = new CitiesResponse(); cityResponse.Records = new List <City>(); cityResponse.Records.Add(new Models.City()); response.Content = JsonConvert.SerializeObject(cityResponse); response.StatusCode = System.Net.HttpStatusCode.OK; var clientResponse = client.HandleResponse <CitiesResponse>(response); Assert.AreEqual(clientResponse.StatusCode, System.Net.HttpStatusCode.OK); Assert.AreEqual(clientResponse.Error, null); }
public static async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log) { string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); INOAAService noaaService = new Services.NOAADummyService(); CitiesRequest request; try { request = JsonConvert.DeserializeObject <CitiesRequest>(requestBody); } catch (Exception ex) { return(new BadRequestObjectResult($"Failed to parse json body: {ex.Message}")); } if (request == null || !IsValidCityRequest(ref request)) { return(new BadRequestObjectResult($"Bad request parameters.")); } CitiesResponse response = null; var data = await noaaService.GetWeatherData(request.Date, request.Date, request.Temperature.Value, true); var resultList = new List <Models.CityData>(); foreach (var item in data) { resultList.Add(new CityData() { Date = request.Date, HighTemperature = item.MaxTemp, Latitude = item.Latitude.ToString(), Longitude = item.Longitude.ToString(), LowTemperature = item.MinTemp, Name = item.Location, }); } response.Cities = resultList; return(new OkObjectResult(JsonConvert.SerializeObject(response))); }
public CitiesResponse GetCities() { var cityResponse = new CitiesResponse { Cities = new List <City> { new City { Name = "Atlanta", State = "Georgia" }, new City { Name = "Duluth", State = "Georgia", }, new City { Name = "Phoenix", State = "Arizona" }, new City { Name = "Scottsdale", State = "Arizona" }, new City { Name = "San Diego", State = "California" } } }; return(cityResponse); }
private void ReceiveCitiesResponse(CitiesResponse response) { PutResult(response); }
/// <summary> /// Метод старта /// </summary> /// <param name="savedInstanceState"></param> protected override void OnCreate(Bundle savedInstanceState) { string query = ""; base.OnCreate(savedInstanceState); // Set our view from the "main" layout resource SetContentView(Resource.Layout.activity_main); btn_get_cities = FindViewById <Button>(Resource.Id.btn_get_cities); search_text = FindViewById <AutoCompleteTextView>(Resource.Id.search_text); list_cities = FindViewById <ListView>(Resource.Id.list_cities); //событие для получения индекса выбранного элемента list_cities.ItemClick += new EventHandler <AdapterView.ItemClickEventArgs>(GetIndex); //событие для обращения к API btn_get_cities.Click += async delegate { if (search_text.Text != "") { //чтение запроса пользователя query = search_text.Text; query = query.Replace(' ', '+'); query = query.Replace(",", "%2C"); //обращение к API HttpClient client = new HttpClient(); HttpClient client_translate = new HttpClient(); client.DefaultRequestHeaders.Add("user-key", apiKey); client_translate.DefaultRequestHeaders.Add("X-RapidAPI-Host", "microsoft-azure-translation-v1.p.rapidapi.com"); client_translate.DefaultRequestHeaders.Add("X-RapidAPI-Key", "44aa189e74mshaa49add707f3528p1d96acjsn216ddd330fe5"); try { HttpResponseMessage response = null; //открытие диалога загрузки Android.Support.V7.App.AlertDialog dialog = new EDMTDialogBuilder().SetContext(this).SetMessage("Please wait..").Build(); if (!dialog.IsShowing) { dialog.Show(); } //обращение к API переводчика try { response = await client_translate.GetAsync("https://microsoft-azure-translation-v1.p.rapidapi.com/" + "translate?from=ru&to=en&text=" + query); } catch { Toast.MakeText(this, "Отсутсвует подключение к интернету!", ToastLength.Long).Show(); return; } try { //обработка запроса query = await response.Content.ReadAsStringAsync(); query = query.Split('>')[1]; query = query.Split('<')[0]; } catch (IndexOutOfRangeException) { Toast.MakeText(this, "Некорректный запрос", ToastLength.Long).Show(); return; } response = null; try { response = await client.GetAsync(BasePath + "/cities?q=" + query); } catch { Toast.MakeText(this, "Отсутсвует подключение к интернету!", ToastLength.Long).Show(); return; } //десериализация responce_cities = JsonConvert.DeserializeObject <CitiesResponse>(await response.Content.ReadAsStringAsync()); List <string> city_names = new List <string>(); response = null; //перевод ответа for (int i = 0; i < responce_cities.location_suggestions.Count; i++) { string name = responce_cities.location_suggestions[i].name; name = name.Replace(' ', '+'); name = name.Replace(",", "%2C"); response = await client_translate.GetAsync("https://microsoft-azure-translation-v1.p.rapidapi.com/" + "translate?from=en&to=ru&text=" + name); try { name = await response.Content.ReadAsStringAsync(); name = name.Split('>')[1]; name = name.Split('<')[0]; } catch (IndexOutOfRangeException) { return; } responce_cities.location_suggestions[i].name = name; city_names.Add(name); } //инициализация списка для вывода на экран if (city_names.Count == 0) { Toast.MakeText(this, "Ничего не найдено!", ToastLength.Long).Show(); } else { var adapter = new ArrayAdapter <string>(this, Android.Resource.Layout.SimpleListItem1, city_names); list_cities.Adapter = adapter; } if (dialog.IsShowing) { dialog.Dismiss(); } } catch { Toast.MakeText(this, "Отсутсвует подключение к интернету!", ToastLength.Long).Show(); } } else { Toast.MakeText(this, "Введите город", ToastLength.Long).Show(); } }; }