public void PlacesTextSearchWhenRadiusTest() { var request = new PlacesTextSearchRequest { Key = this.ApiKey, Query = "picadelly circus", Radius = 5000 }; var response = GooglePlaces.TextSearch.Query(request); Assert.IsNotNull(response); Assert.AreEqual(Status.Ok, response.Status); }
public void PlacesTextSearchAsyncTest() { var request = new PlacesTextSearchRequest { Key = this.ApiKey, Sensor = true, Query = "picadelly circus" }; var response = GooglePlaces.TextSearch.QueryAsync(request).Result; Assert.IsNotNull(response); Assert.AreEqual(Status.Ok, response.Status); }
public void GetUriWhenOpenNowTest() { var request = new PlacesTextSearchRequest { Key = "abc", Query = "test", OpenNow = true }; var uri = request.GetUri(); Assert.IsNotNull(uri); Assert.AreEqual($"/maps/api/place/textsearch/json?key={request.Key}&query={request.Query}&language={request.Language.ToCode()}&opennow", uri.PathAndQuery); }
public void GetUriWhenMaxpriceTest() { var request = new PlacesTextSearchRequest { Key = "abc", Query = "test", Maxprice = PriceLevel.Free }; var uri = request.GetUri(); Assert.IsNotNull(uri); Assert.AreEqual($"/maps/api/place/textsearch/json?key={request.Key}&query={request.Query}&language={request.Language.ToCode()}&maxprice={((int)request.Minprice.GetValueOrDefault()).ToString()}", uri.PathAndQuery); }
public void GetQueryStringParametersWhenKeyIsNullTest() { var request = new PlacesTextSearchRequest { Key = null, Query = "test" }; var exception = Assert.Throws<ArgumentException>(() => { var parameters = request.GetQueryStringParameters(); Assert.IsNull(parameters); }); Assert.AreEqual(exception.Message, "Key is required"); }
public void PlacesTextSearchTest() { var _request = new PlacesTextSearchRequest { Key = this._apiKey, Sensor = true, Language = "en", Query = "picadelly circus" }; var _response = GooglePlaces.TextSearch.Query(_request); Assert.IsNotNull(_response); Assert.AreEqual(Status.OK, _response.Status); }
public void GetUriWhenLocationTest() { var request = new PlacesTextSearchRequest { Key = "abc", Query = "test", Location = new Location(1, 1), Radius = 50 }; var uri = request.GetUri(); Assert.IsNotNull(uri); Assert.AreEqual($"/maps/api/place/textsearch/json?key={request.Key}&query={request.Query}&language={request.Language.ToCode()}&location={Uri.EscapeDataString(request.Location.ToString())}&radius={request.Radius}", uri.PathAndQuery); }
public void GetUriWhenTypeTest() { var request = new PlacesTextSearchRequest { Key = "abc", Query = "test", Type = SearchPlaceType.Accounting }; var uri = request.GetUri(); var attribute = request.Type?.GetType().GetMembers().FirstOrDefault(x => x.Name == request.Type.ToString())?.GetCustomAttribute <EnumMemberAttribute>(); Assert.IsNotNull(uri); Assert.AreEqual($"/maps/api/place/textsearch/json?key={request.Key}&query={request.Query}&language={request.Language.ToCode()}&type={attribute?.Value.ToLower()}", uri.PathAndQuery); }
public void PlacesTextSearchWhenLocationAndRadiusTest() { var request = new PlacesTextSearchRequest { Key = this.ApiKey, Query = "picadelly circus", Location = new Location(51.5100913, -0.1345676), Radius = 5000 }; var response = GooglePlaces.TextSearch.Query(request); Assert.IsNotNull(response); Assert.AreEqual(Status.Ok, response.Status); }
public void GetQueryStringParametersWhenQueryIsStringEmptyTest() { var request = new PlacesTextSearchRequest { Key = this.ApiKey, Query = string.Empty }; var exception = Assert.Throws<ArgumentException>(() => { var parameters = request.GetQueryStringParameters(); Assert.IsNull(parameters); }); Assert.AreEqual(exception.Message, "Query is required"); }
public void GetQueryStringParametersWhenLocationAndRadiusIsNullTest() { var request = new PlacesTextSearchRequest { Key = this.ApiKey, Query = "picadelly circus", Location = new Location(0, 0) }; var exception = Assert.Throws<ArgumentException>(() => { var parameters = request.GetQueryStringParameters(); Assert.IsNull(parameters); }); Assert.AreEqual(exception.Message, "Radius is required when Location is specified"); }
public void GetQueryStringParametersWhenOpenNowTest() { var request = new PlacesTextSearchRequest { Key = "key", Query = "query", OpenNow = true }; var queryStringParameters = request.GetQueryStringParameters(); Assert.IsNotNull(queryStringParameters); var radius = queryStringParameters.FirstOrDefault(x => x.Key == "opennow"); Assert.IsNotNull(radius); }
private async void search(string query) { var request = new PlacesTextSearchRequest { Key = _secretsService.GoogleApiKey, Query = query, }; var response = await GooglePlaces.TextSearch.QueryAsync(request); foreach (var result in response.Results) { var location = result.Geometry.Location; viewportService.SetCenter(location.Latitude, location.Longitude); break; } }
public void GetQueryStringParametersWhenPageTokenTest() { var request = new PlacesTextSearchRequest { Key = "key", PageToken = "pagetoken" }; var queryStringParameters = request.GetQueryStringParameters(); Assert.IsNotNull(queryStringParameters); var pagetoken = queryStringParameters.FirstOrDefault(x => x.Key == "pagetoken"); var pagetokenExpected = request.PageToken; Assert.IsNotNull(pagetoken); Assert.AreEqual(pagetokenExpected, pagetoken.Value); }
public void PlacesTextSearchWhenInvalidKeyTest() { var request = new PlacesTextSearchRequest { Key = "test", Query = "picadelly circus" }; var exception = Assert.Throws <AggregateException>(() => GooglePlaces.TextSearch.QueryAsync(request).Wait()); Assert.IsNotNull(exception); var innerException = exception.InnerExceptions.FirstOrDefault(); Assert.IsNotNull(innerException); Assert.AreEqual(typeof(GoogleApiException), innerException.GetType()); Assert.AreEqual("RequestDenied: The provided API key is invalid.", innerException.Message); }
public void PlacesTextSearchWhenAsyncAndCancelledTest() { var request = new PlacesTextSearchRequest { Key = this.ApiKey, Query = "picadelly circus" }; var cancellationTokenSource = new CancellationTokenSource(); var task = GooglePlaces.TextSearch.QueryAsync(request, cancellationTokenSource.Token); cancellationTokenSource.Cancel(); var exception = Assert.Throws <OperationCanceledException>(() => task.Wait(cancellationTokenSource.Token)); Assert.IsNotNull(exception); Assert.AreEqual(exception.Message, "The operation was canceled."); }
public void PlacesTextSearchWhenKeyIsNullTest() { var request = new PlacesTextSearchRequest { Key = null, Query = "test" }; var exception = Assert.Throws <AggregateException>(() => GooglePlaces.TextSearch.QueryAsync(request).Wait()); Assert.IsNotNull(exception); var innerException = exception.InnerException; Assert.IsNotNull(innerException); Assert.AreEqual(typeof(GoogleApiException), innerException.GetType()); Assert.AreEqual(innerException.Message, "Key is required"); }
public void PlacesTextSearchWhenQueryIsStringEmptyTest() { var request = new PlacesTextSearchRequest { Key = this.ApiKey, Query = string.Empty }; var exception = Assert.Throws <AggregateException>(() => GooglePlaces.TextSearch.QueryAsync(request).Wait()); Assert.IsNotNull(exception); var innerException = exception.InnerException; Assert.IsNotNull(innerException); Assert.AreEqual(typeof(GoogleApiException), innerException.GetType()); Assert.AreEqual(innerException.Message, "Query is required"); }
public void PlacesTextSearchWhenQueryIsNullTest() { var request = new PlacesTextSearchRequest { Key = this.ApiKey, Query = null }; var exception = Assert.Throws <AggregateException>(() => GooglePlaces.TextSearch.Query(request)); Assert.IsNotNull(exception); Assert.AreEqual("One or more errors occurred.", exception.Message); var innerException = exception.InnerException; Assert.IsNotNull(innerException); Assert.AreEqual(typeof(GoogleApiException), innerException.GetType()); Assert.AreEqual(innerException.Message, "Query is required"); }
public void PlacesTextSearchWhenLocationAndRadiusIsNullTest() { var request = new PlacesTextSearchRequest { Key = this.ApiKey, Query = "picadelly circus", Location = new Location(0, 0) }; var exception = Assert.Throws <AggregateException>(() => GooglePlaces.TextSearch.QueryAsync(request).Wait()); Assert.IsNotNull(exception); var innerException = exception.InnerException; Assert.IsNotNull(innerException); Assert.AreEqual(typeof(GoogleApiException), innerException.GetType()); Assert.AreEqual(innerException.Message, "Radius is required when Location is specified"); }
public void GetQueryStringParametersWhenMaxpriceTest() { var request = new PlacesTextSearchRequest { Key = "key", Query = "query", Maxprice = PriceLevel.Free }; var queryStringParameters = request.GetQueryStringParameters(); Assert.IsNotNull(queryStringParameters); var maxprice = queryStringParameters.FirstOrDefault(x => x.Key == "maxprice"); var maxpriceExpected = ((int)request.Maxprice.GetValueOrDefault()).ToString(); Assert.IsNotNull(maxprice); Assert.AreEqual(maxpriceExpected, maxprice.Value); }
public void GetQueryStringParametersWhenRegionTest() { var request = new PlacesTextSearchRequest { Key = "key", Query = "query", Region = "region" }; var queryStringParameters = request.GetQueryStringParameters(); Assert.IsNotNull(queryStringParameters); var region = queryStringParameters.FirstOrDefault(x => x.Key == "region"); var regionExpected = request.Region; Assert.IsNotNull(region); Assert.AreEqual(regionExpected, region.Value); }
public void GetQueryStringParametersWhenRadiusTest() { var request = new PlacesTextSearchRequest { Key = "key", Query = "query", Radius = 100 }; var queryStringParameters = request.GetQueryStringParameters(); Assert.IsNotNull(queryStringParameters); var radius = queryStringParameters.FirstOrDefault(x => x.Key == "radius"); var radiusExpected = request.Radius?.ToString(); Assert.IsNotNull(radius); Assert.AreEqual(radiusExpected, radius.Value); }
public void GetQueryStringParametersWhenTypeTest() { var request = new PlacesTextSearchRequest { Key = "key", Query = "query", Type = SearchPlaceType.Accounting }; var queryStringParameters = request.GetQueryStringParameters(); Assert.IsNotNull(queryStringParameters); var type = queryStringParameters.FirstOrDefault(x => x.Key == "type"); var typeAttribute = request.Type?.GetType().GetMembers().FirstOrDefault(x => x.Name == request.Type.ToString())?.GetCustomAttribute <EnumMemberAttribute>(); var typeExpected = typeAttribute?.Value.ToLower(); Assert.IsNotNull(type); Assert.AreEqual(typeExpected, type.Value); }
public void PlacesTextSearchWhenPriceLevelMaxTest() { var request = new PlacesTextSearchRequest { Key = this.ApiKey, Query = "new york", Maxprice = PriceLevel.Expensive }; var response = GooglePlaces.TextSearch.Query(request); Assert.IsNotNull(response); Assert.IsEmpty(response.HtmlAttributions); Assert.AreEqual(Status.Ok, response.Status); var result = response.Results.FirstOrDefault(); Assert.IsNotNull(result); Assert.IsNotNull(result.PlaceId); Assert.LessOrEqual(result.PriceLevel, request.Maxprice); }
public void PlacesTextSearchTest() { var request = new PlacesTextSearchRequest { Key = this.ApiKey, Query = "picadelly circus" }; var response = GooglePlaces.TextSearch.Query(request); Assert.IsNotNull(response); Assert.IsEmpty(response.HtmlAttributions); Assert.AreEqual(Status.Ok, response.Status); var result = response.Results.FirstOrDefault(); Assert.IsNotNull(result); Assert.IsNotNull(result.PlaceId); Assert.IsNotNull(result.Geometry); Assert.IsNotNull(result.Geometry.Location); Assert.AreEqual(result.BusinessStatus, BusinessStatus.Operational); }
public async Task <PlacesTextSearchResponse> SearchAsync(string phrase) { Log.Information($"GooglePlacesSearcher : {phrase}"); var request = new PlacesTextSearchRequest { Key = Constant.ApiKey.GoogleApiLendZen, Query = phrase, Location = new Location("Australia"), Radius = 50 }; try { var response = await GoogleApi.GooglePlaces.TextSearch.QueryAsync(request); switch (response.Status) { case Status.Ok: case Status.ZeroResults: Log.Information("{status} {phrase}", response.Status.GetValueOrDefault(), request.Query); return(response); case Status.OverQueryLimit: case Status.MaxElementsExceeded: Log.Warning("{status} {searchterm} {response}", response.Status.GetValueOrDefault(), request.Query, response.ErrorMessage); return(response); default: Log.Error("{status} {searchterm} {error}", response.Status.GetValueOrDefault(), request.Query, response.ErrorMessage); return(response); } } catch (Exception e) { Console.WriteLine(e); Log.Error(e, "GooglePlacesSearcher error {text}", phrase); throw; } }
public void PlacesTextSearchTest() { var request = new PlacesTextSearchRequest { Key = this.ApiKey, Query = "picadelly circus" }; var response = GooglePlaces.TextSearch.Query(request); Assert.IsNotNull(response); Assert.IsEmpty(response.HtmlAttributions); Assert.AreEqual(Status.Ok, response.Status); var result = response.Results.FirstOrDefault(); Assert.IsNotNull(result); Assert.IsNotNull(result.PlaceId); Assert.IsNotNull(result.Geometry); Assert.IsNotNull(result.Geometry.Location); Assert.AreEqual(51.5100913, result.Geometry.Location.Latitude, 0.01); Assert.AreEqual(-0.1345676, result.Geometry.Location.Longitude, 0.01); }
public void PlacesTextSearchWhenAsyncAndTimeoutTest() { var request = new PlacesTextSearchRequest { Key = this.ApiKey, Query = "picadelly circus" }; var exception = Assert.Throws <AggregateException>(() => { var result = GooglePlaces.TextSearch.QueryAsync(request, TimeSpan.FromMilliseconds(1)).Result; Assert.IsNull(result); }); Assert.IsNotNull(exception); Assert.AreEqual(exception.Message, "One or more errors occurred."); var innerException = exception.InnerException; Assert.IsNotNull(innerException); Assert.AreEqual(innerException.GetType(), typeof(TaskCanceledException)); Assert.AreEqual(innerException.Message, "A task was canceled."); }
public void PlacesTextSearchWhenPageTokenTest() { var request = new PlacesTextSearchRequest { Key = this.ApiKey, Query = "l" }; var response = GooglePlaces.TextSearch.Query(request); Assert.IsNotNull(response); Assert.IsNotNull(response.NextPageToken); var requestNextPage = new PlacesTextSearchRequest { Key = this.ApiKey, PageToken = response.NextPageToken }; var responseNextPage = GooglePlaces.TextSearch.Query(requestNextPage); Assert.IsNotNull(responseNextPage); Assert.AreNotEqual(response.Results.FirstOrDefault()?.PlaceId, responseNextPage.Results.FirstOrDefault()?.PlaceId); }