public void GetElevationForTwoLocations()
        {
            // expectations
            var expectedStatus             = ServiceResponseStatus.Ok;
            var expectedResultCount        = 2;
            var expectedElevation1         = 1608.8402100m;
            var expectedLocationLatitude1  = 39.7391536m;
            var expectedLocationLongitude1 = -104.9847034m;
            var expectedElevation2         = -50.7890358m;
            var expectedLocationLatitude2  = 36.4555560m;
            var expectedLocationLongitude2 = -116.8666670m;

            // test
            var request = new ElevationRequest();

            request.Locations = "39.7391536,-104.9847034|36.455556,-116.866667";
            request.Sensor    = "false";
            var response = ElevationService.GetResponse(request);

            // asserts
            Assert.AreEqual(expectedStatus, response.Status);
            Assert.AreEqual(expectedResultCount, response.Results.Length);
            Assert.AreEqual(expectedElevation1, response.Results.First().Elevation);
            Assert.AreEqual(expectedLocationLatitude1, response.Results.First().Location.Latitude);
            Assert.AreEqual(expectedLocationLongitude1, response.Results.First().Location.Longitude);
            Assert.AreEqual(expectedElevation2, response.Results.Last().Elevation);
            Assert.AreEqual(expectedLocationLatitude2, response.Results.Last().Location.Latitude);
            Assert.AreEqual(expectedLocationLongitude2, response.Results.Last().Location.Longitude);
        }
        private List <MountainPoint> GetData(HeightRequestDbData requestData)
        {
            var elevationService = new ElevationService();

            var request = new ElevationRequest();

            request.Samples = requestData.ResolutionX;

            var latStep = (requestData.NeLat - requestData.SwLat) / requestData.ResolutionY;
            var lat     = requestData.SwLat + latStep * requestData.RequestNumber;

            request.Path.Add(new LatLng(lat, requestData.SwLng));
            request.Path.Add(new LatLng(lat, requestData.NeLng));

            var response = elevationService.GetResponse(request);

            if (response.Status == ServiceResponseStatus.Ok)
            {
                return(response.Results.Select(i => new MountainPoint
                {
                    height = i.Elevation,
                    lat = (decimal)i.Location.Latitude,
                    lng = (decimal)i.Location.Longitude
                }).ToList());
            }
            throw new Exception("Not supported status: " + response.Status + ". " + response.ErrorMessage);
        }
        public void GetElevationForOneLocation()
        {
            // expectations
            var expectedStatus            = ServiceResponseStatus.Ok;
            var expectedResultCount       = 1;
            var expectedElevation         = 1608.8402100m;
            var expectedLocationLatitude  = 39.7391536m;
            var expectedLocationLongitude = -104.9847034m;

            // test
            var request = new ElevationRequest();

            request.Locations = "39.7391536,-104.9847034";
            request.Sensor    = "false";
            var response = ElevationService.GetResponse(request);

            // asserts
            Assert.AreEqual(expectedStatus, response.Status);
            Assert.AreEqual(expectedResultCount, response.Results.Length);
            Assert.AreEqual(expectedElevation, response.Results.Single().Elevation);
            Assert.AreEqual(expectedLocationLatitude, response.Results.Single().Location.Latitude);
            Assert.AreEqual(expectedLocationLongitude, response.Results.Single().Location.Longitude);
        }
 public void GetElevationWithoutParameters()
 {
     // test
     var request  = new ElevationRequest();
     var response = ElevationService.GetResponse(request);
 }