public void ConstructorDefaultTest() { var request = new TimeZoneRequest(); Assert.IsNotNull(request.TimeStamp); Assert.AreEqual(Language.English, request.Language); }
public async Task Test_SerializationAsync() { // Get the client. ITimeZoneClient client = Fixture.GetRequiredService <ITimeZoneClient>(); // Create the request. var request = new TimeZoneRequest( // The White House 38.8977M, -77.0365M, // 🎆🎆 July 4th, 2020 🎆🎆 new DateTime(2020, 07, 04) ); // Execute. TimeZoneResponse results = await client .GetTimeZoneAsync(request, default) .ConfigureAwait(false); // Create the container. var expected = new Container <TimeZoneResponse> { Value = results }; // Serialize to a string. string json = JsonSerializer.Serialize(expected); // Serialize again. var actual = JsonSerializer.Deserialize <Container <TimeZoneResponse> >(json); // Compare. Assert.Equal(expected.Value.Status, actual.Value.Status); Assert.Equal(expected.Value.TimeZoneId, actual.Value.TimeZoneId); Assert.Equal(expected.Value.RawOffset, actual.Value.RawOffset); }
public async Task Test_GetTimeZoneAsync() { // Get the client. ITimeZoneClient client = Fixture.GetRequiredService <ITimeZoneClient>(); // Create the request. var request = new TimeZoneRequest( // The White House 38.8977M, -77.0365M, // 🎆🎆 July 4th, 2020 🎆🎆 new DateTime(2020, 07, 04) ); // Execute. TimeZoneResponse actual = await client .GetTimeZoneAsync(request, default) .ConfigureAwait(false); // Assert. Assert.Equal(Status.OK, actual.Status); Assert.Equal(TimeSpan.FromHours(1), actual.DstOffset); Assert.Equal(TimeSpan.FromHours(-5), actual.RawOffset); Assert.Equal("America/New_York", actual.TimeZoneId); Assert.Equal("Eastern Daylight Time", actual.TimeZoneName); }
/// <summary> /// This API returns current, historical, and future time zone information for the specified IANA time zone ID. /// </summary> /// <param name="req"></param> /// <returns></returns> public virtual async Task <Response <TimezoneResult> > GetTimezoneById(TimeZoneRequest req) { var res = await ExecuteRequest <TimezoneResult, TimeZoneRequest> ("https://atlas.microsoft.com/timezone/byId/json", req); return(res); }
public async Task <string> GetTimeForPoint(Tuple <double, double> pointA, DateTimeOffset dateTimeOffset) { var azureMaps = new AzureMapsToolkit.AzureMapsServices(GetMapKey()); if (azureMaps == null) { logger.LogError("Failed to get instance of azuremaps."); throw new Exception("Failed to get instance of azuremaps"); } var timezoneRequest = new TimeZoneRequest { Query = $"{pointA.Item1},{pointA.Item2}", TimeStamp = dateTimeOffset.UtcDateTime.ToString("O") }; logger.LogInformation("Getting time for timezoneRequest: {0}", JsonSerializer.Serialize(timezoneRequest)); var response = await azureMaps.GetTimezoneByCoordinates(timezoneRequest).ConfigureAwait(false); logger.LogInformation("Response from getting time for timezoneRequest: {0}", JsonSerializer.Serialize(response)); if (response.HttpResponseCode != (int)HttpStatusCode.OK && response.HttpResponseCode != 0) { throw new Exception($"Error getting timezonebycoordinates: {response}"); } return(response?.Result?.TimeZones[0]?.ReferenceTime?.WallTime); }
public void TimeZoneWhenLocationIsNullTest() { var request = new TimeZoneRequest(); var exception = Assert.Throws <ArgumentException>(() => GoogleMaps.TimeZone.Query(request)); Assert.IsNotNull(exception); Assert.AreEqual(exception.Message, "Location is required."); }
public void GetQueryStringParametersTest() { var request = new TimeZoneRequest { Key = "abc", Location = new Location(40.7141289, -73.9614074) }; Assert.DoesNotThrow(() => request.GetQueryStringParameters()); }
public void GetQueryStringParametersWhenLocationIsNullTest() { var request = new TimeZoneRequest { Key = "key" }; var exception = Assert.Throws <ArgumentException>(() => request.GetQueryStringParameters()); Assert.AreEqual(exception.Message, "'Location' is required"); }
public void GetQueryStringParametersWhenKeyIsEmptyTest() { var request = new TimeZoneRequest { Key = string.Empty }; var exception = Assert.Throws <ArgumentException>(() => request.GetQueryStringParameters()); Assert.AreEqual("'Key' is required", exception.Message); }
public void TimeZone_Correct_OverviewPath() { TimeZoneRequest request = new TimeZoneRequest(); request.Location = new Location(55.866413, 12.501063); request.Language = "en"; TimeZoneResponse result = GoogleMaps.TimeZone.Query(request); Assert.AreEqual(GoogleMapsApi.Entities.TimeZone.Response.Status.OK, result.Status); }
public void TimeZone_Correct_OverviewPath() { TimeZoneRequest request = new TimeZoneRequest(); request.Location = new Location(55.866413, 12.501063); request.Language = "en"; TimeZoneResponse result = GoogleMaps.TimeZone.Query(request); AssertInconclusive.NotExceedQuota(result); Assert.AreEqual(Status.OK, result.Status); }
public void GetTimeZoneById() { var am = new AzureMapsToolkit.AzureMapsServices(_KEY); var req = new TimeZoneRequest { Query = "Europe/Stockholm", Options = TimezoneOptions.All }; var r = am.GetTimezoneById(req).Result; Assert.Null(r.Error); Assert.Equal("SE", r.Result.TimeZones[0].Countries[0].Code); }
public void GetUriTest() { var request = new TimeZoneRequest { Key = "abc", Location = new Location(40.7141289, -73.9614074) }; var uri = request.GetUri(); Assert.IsNotNull(uri); Assert.AreEqual($"/maps/api/timezone/json?key={request.Key}&language={request.Language.ToCode()}&location={Uri.EscapeDataString(request.Location.ToString())}×tamp={request.TimeStamp.DateTimeToUnixTimestamp()}", uri.PathAndQuery); }
public void GetTimeZoneByCoordinates() { var am = new AzureMapsToolkit.AzureMapsServices(_KEY); var req = new TimeZoneRequest { Query = "47.0,-122", Options = TimezoneOptions.All }; var r = am.GetTimezoneByCoordinates(req).Result; Assert.Null(r.Error); Assert.Equal("US", r.Result.TimeZones[0].Countries[0].Code); }
public void TimeZoneWhenAsyncTest() { var location = new Coordinate(40.7141289, -73.9614074); var request = new TimeZoneRequest { Key = this.ApiKey, Location = location }; var response = GoogleMaps.TimeZone.QueryAsync(request).Result; Assert.IsNotNull(response); Assert.AreEqual(Status.Ok, response.Status); }
public void TimeZoneParseFailedRequest() { TimeZoneCallResult result = TimeZoneRequest.Make(-999999m, -99999m); Assert.AreEqual(TimeZoneCallStatus.Unknown, result.Status); QueryString query = new QueryString(); query.Add("lat", "not a latitude"); query.Add("lng", "not a longitude"); TimeZoneRequest request = new TimeZoneRequest(query); TimeZoneResponse response = request.GetResponse(); Assert.IsTrue(response.Status == TimeZoneCallStatus.InvalidParameter || response.Status == TimeZoneCallStatus.NotFound); }
public async Task TimeZone_Correct_OverviewPathAsync() { TimeZoneRequest request = new TimeZoneRequest { Location = new Location(55.866413, 12.501063), Language = "en", ApiKey = ApiKey }; TimeZoneResponse result = await GoogleMaps.TimeZone.QueryAsync(request); AssertInconclusive.NotExceedQuota(result); Assert.AreEqual(Status.OK, result.Status); }
public void TimeZoneWhenLanguageTest() { var location = new Location(40.7141289, -73.9614074); var request = new TimeZoneRequest { Location = location, Language = Language.German }; var response = GoogleMaps.TimeZone.Query(request); Assert.IsNotNull(response); Assert.AreEqual(Status.Ok, response.Status); Assert.AreEqual("America/New_York", response.TimeZoneId); }
public void TimeZoneAsyncTest() { var location = new Location(40.7141289, -73.9614074); var request = new TimeZoneRequest { Location = location }; var response = GoogleMaps.TimeZone.QueryAsync(request).Result; Assert.IsNotNull(response); Assert.AreEqual(Status.Ok, response.Status); Assert.AreEqual("America/New_York", response.TimeZoneId); Assert.AreEqual("GMT-05:00", response.TimeZoneName); Assert.AreEqual(0.00, response.OffSet); Assert.AreEqual(-18000.00, response.RawOffSet); }
public void TimeZoneWhenTimeStampTest() { var location = new Coordinate(40.7141289, -73.9614074); var request = new TimeZoneRequest { Key = this.ApiKey, Location = location, TimeStamp = DateTime.Now.AddMonths(6) }; var response = GoogleMaps.TimeZone.Query(request); Assert.IsNotNull(response); Assert.AreEqual(Status.Ok, response.Status); }
public void TimeZoneWhenLanguageTest() { var location = new Coordinate(40.7141289, -73.9614074); var request = new TimeZoneRequest { Key = this.ApiKey, Location = location, Language = Language.German }; var response = GoogleMaps.TimeZone.Query(request); Assert.IsNotNull(response); Assert.AreEqual(Status.Ok, response.Status); }
public void GetQueryStringParametersWhenLocationIsNullTest() { var request = new TimeZoneRequest { Key = this.ApiKey }; var exception = Assert.Throws <ArgumentException>(() => { var parameters = request.GetQueryStringParameters(); Assert.IsNull(parameters); }); Assert.IsNotNull(exception); Assert.AreEqual(exception.Message, "Location is required"); }
public void TimeZoneWhenAsyncAndCancelledTest() { var location = new Location(40.7141289, -73.9614074); var request = new TimeZoneRequest { Location = location }; var cancellationTokenSource = new CancellationTokenSource(); var task = GoogleMaps.TimeZone.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 TimeZoneWhenLocationIsNullTest() { var request = new TimeZoneRequest { Key = this.ApiKey }; var exception = Assert.Throws <AggregateException>(() => GoogleMaps.TimeZone.QueryAsync(request).Wait()); Assert.IsNotNull(exception); var innerException = exception.InnerException; Assert.IsNotNull(innerException); Assert.AreEqual(typeof(GoogleApiException), innerException.GetType()); Assert.AreEqual(innerException.Message, "Location is required"); }
public void TimeZoneTest() { var location = new Location(40.7141289, -73.9614074); var request = new TimeZoneRequest { Location = location }; var response = GoogleMaps.TimeZone.Query(request); Assert.IsNotNull(response); Assert.AreEqual(Status.Ok, response.Status); Assert.AreEqual("America/New_York", response.TimeZoneId); Assert.AreEqual("Eastern Daylight Time", response.TimeZoneName); Assert.AreEqual(3600.00, response.OffSet); Assert.AreEqual(-18000.00, response.RawOffSet); }
public void TimeZoneWhenLanguageTest() { var location = new Location(40.7141289, -73.9614074); var request = new TimeZoneRequest { Location = location, Language = Language.German }; var response = GoogleMaps.TimeZone.Query(request); Assert.IsNotNull(response); Assert.AreEqual(Status.Ok, response.Status); Assert.AreEqual("America/New_York", response.TimeZoneId); Assert.AreEqual("Nordamerikanische Ostküsten-Sommerzeit", response.TimeZoneName); Assert.AreEqual(3600.00, response.OffSet); Assert.AreEqual(-18000.00, response.RawOffSet); }
public void TimeZoneTest() { var location = new Location(40.7141289, -73.9614074); var request = new TimeZoneRequest { Key = this.ApiKey, Location = location }; var response = GoogleMaps.TimeZone.Query(request); Assert.IsNotNull(response); Assert.AreEqual(Status.Ok, response.Status); Assert.AreEqual("America/New_York", response.TimeZoneId); Assert.IsNotNull(response.TimeZoneName); Assert.IsNotNull(response.OffSet); Assert.IsNotNull(response.RawOffSet); }
public void TimeZoneWhenTimeStampTest() { var location = new Location(40.7141289, -73.9614074); var request = new TimeZoneRequest { Location = location, TimeStamp = DateTime.Now.AddMonths(6) }; var response = GoogleMaps.TimeZone.Query(request); Assert.IsNotNull(response); Assert.AreEqual(Status.Ok, response.Status); Assert.AreEqual("America/New_York", response.TimeZoneId); Assert.AreEqual("Eastern Standard Time", response.TimeZoneName); Assert.AreEqual(0.00, response.OffSet); Assert.AreEqual(-18000.00, response.RawOffSet); }
List <TimeZoneResponseModel> ResultGenerator(List <WeatherItem> weatherItems) { var googleTimeZoneTasks = weatherItems.Select(item => { return(Task <TimeZoneResponseModel> .Factory.StartNew(() => { var req = new TimeZoneRequest { Location = new LatLng(item.City.Coordinates.Latitude, item.City.Coordinates.Longitude) }; var response = new TimeZoneService().GetResponse(req); return TimeZoneResponseModelFactory.Create(item.City.Id, response); })); }).ToArray(); Task.WaitAll(googleTimeZoneTasks, HttpClientTimeout); return(googleTimeZoneTasks.Select(task => task.Result).ToList()); }
public void TimeZoneWhenAsyncAndTimeoutTest() { var location = new Location(40.7141289, -73.9614074); var request = new TimeZoneRequest { Location = location }; var exception = Assert.Throws <AggregateException>(() => { var result = GoogleMaps.TimeZone.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 async Task <DateTimeZone> GetTimeZone(Location location, CancellationToken cancellationToken = default) { var timeZoneRequest = new TimeZoneRequest { Location = location, TimeStamp = myClock.GetCurrentInstant().ToDateTimeUtc(), ApiKey = myGeoCoderOptions.GoogleKey }; var timeZoneResponse = await GoogleMaps.TimeZone.QueryAsync(timeZoneRequest, myTelemetryClient, cancellationToken); if (!timeZoneResponse.IsSuccess()) { return(myClock.Zone); } if (timeZoneResponse.TimeZoneId is { } timeZoneId&& myDateTimeZoneProvider.GetZoneOrNull(timeZoneId) is { } dateTimeZone) { return(dateTimeZone); } return(DateTimeZone.ForOffset(Offset.FromSeconds((int)(timeZoneResponse.RawOffSet + timeZoneResponse.DstOffSet)))); }