public void GetQueryStringParametersWhenRadiusIsGereaterThanFiftyThousandTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key    = "key",
                Input  = "input",
                Radius = 50001
            };

            var exception = Assert.Throws <ArgumentException>(() =>
            {
                var parameters = request.GetQueryStringParameters();
                Assert.IsNull(parameters);
            });

            Assert.AreEqual(exception.Message, "'Radius' must be greater than or equal to 1 and less than or equal to 50.000");
        }
Beispiel #2
0
        public void GetUriWhenComponentsTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key        = "abc",
                Input      = "abc",
                Components = new[]
                {
                    new KeyValuePair <Component, string>(Component.Administrative_Area, "abc")
                }
            };

            var uri = request.GetUri();

            Assert.IsNotNull(uri);
            Assert.AreEqual($"/maps/api/place/autocomplete/json?key={request.Key}&input={request.Input}&language={request.Language.ToCode()}&components={Uri.EscapeDataString(string.Join("|", request.Components.Select(x => $"{x.Key.ToString().ToLower()}:{x.Value}")))}", uri.PathAndQuery);
        }
Beispiel #3
0
        public void GetQueryStringParametersWhenRadiusIsLessThanOneTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key    = "abc",
                Input  = "abc",
                Radius = 0
            };

            var exception = Assert.Throws <ArgumentException>(() =>
            {
                var parameters = request.GetQueryStringParameters();
                Assert.IsNull(parameters);
            });

            Assert.AreEqual(exception.Message, "Radius must be greater than or equal to 1 and less than or equal to 50.000");
        }
        public void PlacesAutoCompleteWhenKeyIsStringEmptyTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key = string.Empty
            };

            var exception = Assert.Throws <AggregateException>(() => GooglePlaces.AutoComplete.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");
        }
Beispiel #5
0
        public void PlacesDetailsTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key   = ApiKey,
                Input = "jagtvej 2200 K�benhavn"
            };

            var response = GooglePlaces.AutoComplete.Query(request);
            var request2 = new PlacesDetailsRequest
            {
                Key     = ApiKey,
                PlaceId = response.Predictions.Select(x => x.PlaceId).FirstOrDefault()
            };

            var response2 = GooglePlaces.Details.Query(request2);

            Assert.IsNotNull(response2);
            Assert.AreEqual(Status.Ok, response2.Status);

            var result = response2.Result;

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Url);
            Assert.IsNotNull(result.Icon);
            Assert.IsNotNull(result.PlaceId);
            Assert.IsNotNull(result.Vicinity);
            Assert.IsNotNull(result.UtcOffset);
            Assert.IsNotNull(result.AdrAddress);
            Assert.IsNotNull(result.Geometry);
            Assert.IsNotNull(result.Geometry.Location);
            Assert.Contains(PlaceLocationType.Route, result.Types.ToArray());
            Assert.AreEqual(BusinessStatus.Operational, result.BusinessStatus);

            var formattedAddress = result.FormattedAddress.ToLower();

            Assert.IsNotNull(formattedAddress);
            Assert.IsTrue(formattedAddress.Contains("jagtvej"));
            Assert.IsTrue(formattedAddress.Contains("k�benhavn"));

            var addressComponents = result.AddressComponents?.ToArray();

            Assert.IsNotNull(addressComponents);
            Assert.GreaterOrEqual(addressComponents.Length, 4);
        }
        public void PlacesAutoCompleteTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key   = this.ApiKey,
                Input = "jagtvej 2200 København",
                Types = new List <RestrictPlaceType> {
                    RestrictPlaceType.Address
                }
            };

            var response = GooglePlaces.AutoComplete.Query(request);

            Assert.IsNotNull(response);
            Assert.AreEqual(Status.Ok, response.Status);

            var results = response.Predictions.ToArray();

            Assert.IsNotNull(results);
            Assert.IsNotEmpty(results);
            Assert.AreEqual(1, results.Length);

            var result = results.FirstOrDefault();

            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Terms);
            Assert.IsNotNull(result.PlaceId);
            Assert.IsNotNull(result.StructuredFormatting);

            var description = result.Description.ToLower();

            Assert.IsTrue(description.Contains("2200"), "1");
            Assert.IsTrue(description.Contains("jagtvej"), "2");

            var matchedSubstrings = result.MatchedSubstrings.ToArray();

            Assert.IsNotNull(matchedSubstrings);
            Assert.AreEqual(2, matchedSubstrings.Length);

            var types = result.Types.ToArray();

            Assert.IsNotNull(types);
            Assert.Contains(PlaceLocationType.Route, types);
            Assert.Contains(PlaceLocationType.Geocode, types);
        }
        public void PlacesAutoCompleteWhenInputIsNullTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key   = this.ApiKey,
                Input = null
            };

            var exception = Assert.Throws <AggregateException>(() => GooglePlaces.AutoComplete.QueryAsync(request).Wait());

            Assert.IsNotNull(exception);

            var innerException = exception.InnerException;

            Assert.IsNotNull(innerException);
            Assert.AreEqual(typeof(GoogleApiException), innerException.GetType());
            Assert.AreEqual(innerException.Message, "Input is required");
        }
        public void PlacesAutoCompleteWhenInvalidKeyTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key   = "test",
                Input = "jagtvej 2200 København"
            };

            var exception = Assert.Throws <AggregateException>(() => GooglePlaces.AutoComplete.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 GetQueryStringParametersWhenStrictBoundsTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key          = "key",
                Input        = "input",
                Strictbounds = true
            };

            var queryStringParameters = request.GetQueryStringParameters();

            Assert.IsNotNull(queryStringParameters);

            var strictbounds = queryStringParameters.FirstOrDefault(x => x.Key == "strictbounds");

            Assert.IsNotNull(strictbounds);
            Assert.Null(strictbounds.Value);
        }
Beispiel #10
0
        public void PlacesAutoCompleteWhenKeyIsNullTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key = null
            };

            var exception = Assert.Throws <AggregateException>(() => GooglePlaces.AutoComplete.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, "Key is required");
        }
        public void PlacesAutoCompleteWhenAsyncAndCancelledTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key   = this.ApiKey,
                Input = "jagtvej 2200"
            };

            var cancellationTokenSource = new CancellationTokenSource();
            var task = GooglePlaces.AutoComplete.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 GetQueryStringParametersWhenRadiusTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key    = "key",
                Input  = "input",
                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 GetQueryStringParametersWhenOriginTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key      = "key",
                Input    = "input",
                Location = new Coordinate(1, 1)
            };

            var queryStringParameters = request.GetQueryStringParameters();

            Assert.IsNotNull(queryStringParameters);

            var origin         = queryStringParameters.FirstOrDefault(x => x.Key == "origin");
            var originExpected = request.Origin;

            Assert.IsNotNull(origin);
            Assert.AreEqual(originExpected, origin.Value);
        }
        public void PlacesQueryAutoCompleteWhenOffsetTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key    = "key",
                Input  = "input",
                Offset = "offset"
            };

            var queryStringParameters = request.GetQueryStringParameters();

            Assert.IsNotNull(queryStringParameters);

            var offset         = queryStringParameters.FirstOrDefault(x => x.Key == "offset");
            var offsetExpected = request.Offset;

            Assert.IsNotNull(offset);
            Assert.AreEqual(offsetExpected, offset.Value);
        }
        public void PlacesAutoCompleteWhenRadiusIsGereaterThanFiftyThousandTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key    = this.ApiKey,
                Input  = "abc",
                Radius = 50001
            };

            var exception = Assert.Throws <AggregateException>(() => GooglePlaces.AutoComplete.QueryAsync(request).Wait());

            Assert.IsNotNull(exception);

            var innerException = exception.InnerException;

            Assert.IsNotNull(innerException);
            Assert.AreEqual(typeof(GoogleApiException), innerException.GetType());
            Assert.AreEqual(innerException.Message, "Radius must be greater than or equal to 1 and less than or equal to 50.000");
        }
Beispiel #16
0
        public void PlacesAutoCompleteWhenRadiusIsLessThanOneTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key    = this.ApiKey,
                Input  = "abc",
                Radius = 0
            };

            var exception = Assert.Throws <AggregateException>(() => GooglePlaces.AutoComplete.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, "Radius must be greater than or equal to 1 and less than or equal to 50.000");
        }
Beispiel #17
0
        public void PlacesAutoCompleteAsyncTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key      = this.apiKey,
                Input    = "jagtvej 2200",
                Sensor   = true,
                Language = "en",
            };

            var response = GooglePlaces.AutoComplete.QueryAsync(request).Result;
            var results  = response.Predictions.ToArray();

            Assert.AreEqual(results[0].Description, "Jagtvej, 2200 Denmark");
            Assert.AreEqual(results[1].Description, "Jagtvej, 2200 Copenhagen, Denmark");
            Assert.AreEqual(results[2].Description, "Jagtvej 2200, Lemvig, Denmark");
            Assert.AreEqual(results[3].Description, "Jagtvej 2200, Denmark");
            Assert.AreEqual(results[4].Description, "Jagtvej 2200, Næstved, Denmark");
            Assert.AreEqual(5, results.Length);
        }
Beispiel #18
0
        public void PlacesAutoCompleteTest()
        {
            var _request = new PlacesAutoCompleteRequest
            {
                ApiKey   = _apiKey,
                Input    = "jagtvej 2200",
                Sensor   = true,
                Language = "en",
            };

            var _response = GooglePlaces.AutoComplete.Query(_request);
            var _results  = _response.Predictions.ToList();

            Assert.AreEqual(_results[0].Description, "Jagtvej 2200, Copenhagen, Denmark");
            Assert.AreEqual(_results[1].Description, "2200 Jagtvej, Nuuk, Greenland");
            Assert.AreEqual(_results[2].Description, "Jagtvej 2200, Odense, Denmark");
            Assert.AreEqual(_results[3].Description, "Jagtvej 2200, Esbjerg, Denmark");
            Assert.AreEqual(_results[4].Description, "Jagtvej 2200, Naestved, Denmark");
            Assert.AreEqual(5, _results.Count);
        }
Beispiel #19
0
        public void PlacesAutoCompleteTest()
        {
            var _request = new PlacesAutoCompleteRequest
            {
                Key      = this._apiKey,
                Input    = "jagtvej 2200",
                Sensor   = true,
                Language = "en",
            };

            var _response = GooglePlaces.AutoComplete.Query(_request);
            var _results  = _response.Predictions.ToList();

            Assert.AreEqual(_results[0].Description, "Jagtvej 2200, Denmark");
            Assert.AreEqual(_results[1].Description, "Jagtvej, 2200 Copenhagen, Denmark");
            Assert.AreEqual(_results[2].Description, "Jagtvej 2200, Hillerød, Denmark");
            Assert.AreEqual(_results[3].Description, "Jagtvej 2200, Fredensborg, Denmark");
            Assert.AreEqual(_results[4].Description, "Jagtvej, 2200 Denmark");
            Assert.AreEqual(5, _results.Count);
        }
Beispiel #20
0
        public void PlacesDetailsAsyncTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key   = ApiKey,
                Input = "jagtvej 2200"
            };

            var response = GooglePlaces.AutoComplete.QueryAsync(request).Result;
            var results  = response.Predictions.ToArray();
            var result   = results.First();

            var request2 = new PlacesDetailsRequest
            {
                Key     = ApiKey,
                PlaceId = result.PlaceId
            };

            var response2 = GooglePlaces.Details.Query(request2);

            Assert.AreEqual(Status.Ok, response2.Status);
        }
Beispiel #21
0
        public void PlacesDetailsWhenFieldsTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key   = ApiKey,
                Input = "jagtvej 2200 København"
            };

            var response = GooglePlaces.AutoComplete.Query(request);
            var request2 = new PlacesDetailsRequest
            {
                Key     = ApiKey,
                PlaceId = response.Predictions.Select(x => x.PlaceId).FirstOrDefault(),
                Fields  = FieldTypes.Place_Id
            };

            var response2 = GooglePlaces.Details.Query(request2);

            Assert.IsNotNull(response2);
            Assert.AreEqual(Status.Ok, response2.Status);
            Assert.IsNotNull(response2.Result.PlaceId);
        }
Beispiel #22
0
        public void PlaceGeocodeWhenAsyncTest()
        {
            var autoCompleteRequest = new PlacesAutoCompleteRequest
            {
                Key   = this.ApiKey,
                Input = "285 Bedford Ave, Brooklyn, NY 11211, USA"
            };

            var autoCompleteResponse = GooglePlaces.AutoComplete.Query(autoCompleteRequest);
            var placeId = autoCompleteResponse.Predictions.Select(x => x.PlaceId).FirstOrDefault();

            var request = new PlaceGeocodeRequest
            {
                Key     = this.ApiKey,
                PlaceId = placeId
            };

            var result = GoogleMaps.PlaceGeocode.QueryAsync(request).Result;

            Assert.IsNotNull(result);
            Assert.AreEqual(Status.Ok, result.Status);
        }
        public void PlacesAutoCompleteWhenAsyncAndTimeoutTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key   = this.ApiKey,
                Input = "jagtvej 2200"
            };

            var exception = Assert.Throws <AggregateException>(() =>
            {
                var result = GooglePlaces.AutoComplete.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 GetQueryStringParametersWhenTypesTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key   = "key",
                Input = "input",
                Types = new[]
                {
                    RestrictPlaceType.Address,
                    RestrictPlaceType.Cities
                }
            };

            var queryStringParameters = request.GetQueryStringParameters();

            Assert.IsNotNull(queryStringParameters);

            var types1         = queryStringParameters.FirstOrDefault(x => x.Key == "types");
            var types1Expected = string.Join("|", request.Types.Select(x => x == RestrictPlaceType.Cities || x == RestrictPlaceType.Regions ? $"({x.ToString().ToLower()})" : $"{x.ToString().ToLower()}"));

            Assert.IsNotNull(types1);
            Assert.AreEqual(types1Expected, types1.Value);
        }
        public void GetQueryStringParametersWhenComponentsTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key        = "key",
                Input      = "input",
                Components = new[]
                {
                    new KeyValuePair <Component, string>(Component.Country, "country"),
                    new KeyValuePair <Component, string>(Component.Locality, "locality")
                }
            };

            var queryStringParameters = request.GetQueryStringParameters();

            Assert.IsNotNull(queryStringParameters);

            var components1         = queryStringParameters.FirstOrDefault(x => x.Key == "components");
            var components1Expected = string.Join("|", request.Components.Select(x => $"{x.Key.ToString().ToLower()}:{x.Value}"));

            Assert.IsNotNull(components1);
            Assert.AreEqual(components1Expected, components1.Value);
        }
        private async void GetAutoCompleteListAsync(AutoCompleteListEventArgs e)
        {
            try
            {
                if (mleAddress.Text.Count() > 3)
                {
                    var request = new PlacesAutoCompleteRequest
                    {
                        Key   = MiscStuff.googleApiKey,
                        Input = mleAddress.Text,
                        Types = new List <RestrictPlaceType> {
                            RestrictPlaceType.Address
                        }
                    };

                    var response = await GooglePlaces.AutoComplete.QueryAsync(request);

                    if (response.Status == GoogleApi.Entities.Common.Enums.Status.Ok)
                    {
                        e.AutoCompleteList.Clear();

                        count = 0;

                        foreach (var place in response.Predictions)
                        {
                            e.AutoCompleteList.Add(place.Description);
                            autoAddress = place.Description;
                            count++;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(MiscStuff.GetAllMessages(ex));
            }
        }
        public void PlacesAutoCompleteTest()
        {
            var request = new PlacesAutoCompleteRequest
            {
                Key    = this.ApiKey,
                Input  = "jagtvej 2200",
                Sensor = true
            };

            var response = GooglePlaces.AutoComplete.Query(request);

            Assert.IsNotNull(response);
            Assert.AreEqual(Status.Ok, response.Status);

            var results = response.Predictions.ToArray();

            Assert.IsNotNull(results);
            Assert.AreEqual(results[0].Description, "Jagtvej, 2200 København N, Denmark");
            Assert.AreEqual(results[1].Description, "Jagtvej, 2200 Copenhagen, Denmark");
            Assert.AreEqual(results[2].Description, "Jagtvej 2200, Lemvig, Denmark");
            Assert.AreEqual(results[3].Description, "Jagtvej 2200, Odense C, Denmark");
            Assert.AreEqual(results[4].Description, "Jagtvej 2200, Næstved, Denmark");
            Assert.AreEqual(5, results.Length);
        }
        private void AddressChange(DialogResult dr, String addressChosen)
        {
            if (dr == DialogResult.OK)
            {
                textBoxCountry.Text    = String.Empty;
                textBoxPostcode.Text   = String.Empty;
                textBoxStreet.Text     = String.Empty;
                comboBoxEditState.Text = String.Empty;
                textBoxSuburb.Text     = String.Empty;

                mleAddress.Text = addressChosen;

                try
                {
                    var request = new PlacesAutoCompleteRequest
                    {
                        Key   = MiscStuff.googleApiKey,
                        Input = mleAddress.Text
                    };

                    var response = GooglePlaces.AutoComplete.Query(request);

                    if (response.Status == Status.Ok)
                    {
                        var request2 = new PlacesDetailsRequest
                        {
                            Key     = MiscStuff.googleApiKey,
                            PlaceId = response.Predictions.Select(x => x.PlaceId).FirstOrDefault()
                        };

                        var response2 = GooglePlaces.Details.Query(request2);

                        if (response2.Status == Status.Ok)
                        {
                            var result = response2.Result.FormattedAddress;
                            if (result != null)
                            {
                                mleAddress.Text = result.ToString();

                                string[] splitAddress = result.Split(',');
                                if (splitAddress.Count() == 3)
                                {
                                    textBoxStreet.Text  = splitAddress[0];
                                    textBoxCountry.Text = splitAddress[2];

                                    string[] splitAddress2 = splitAddress[1].Split(' ');
                                    textBoxPostcode.Text   = splitAddress2[splitAddress2.Count() - 1];
                                    comboBoxEditState.Text = ChooseState(splitAddress2[splitAddress2.Count() - 2]);
                                    string address3 = splitAddress[1].Replace(splitAddress2[splitAddress2.Count() - 1], string.Empty);
                                    address3 = address3.Replace(splitAddress2[splitAddress2.Count() - 2], string.Empty);

                                    textBoxSuburb.Text = address3.Trim();
                                }
                                else
                                {
                                    MessageBox.Show("Not a valid address");
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(MiscStuff.GetAllMessages(ex));
                }
            }
        }
Beispiel #29
0
        public void ConstructorDefaultTest()
        {
            var request = new PlacesAutoCompleteRequest();

            Assert.IsTrue(request.IsSsl);
        }