public void Constructed_url_with_updated_since_data_with_lat_long_is_correct() { var updatedSinceRequest = new UpdatedSinceRequest { Latitude = 55.9553455, Longitude = 9.9264833, Since = DateTime.Now.AddDays(-5), Start = DateTime.Now.AddDays(-2), End = DateTime.Now.AddDays(-1), Limit = 100, Threshold = "P1D", }; var expectedUrl = $"https://api.electricitymap.org/v3/updated-since/" + $"?lat={updatedSinceRequest.Latitude}" + $"&lon={updatedSinceRequest.Longitude}" + $"&since={updatedSinceRequest.Since:o}" + $"&start={updatedSinceRequest.Start:o}" + $"&end={updatedSinceRequest.End:o}" + $"&limit={updatedSinceRequest.Limit}" + $"&threshold={updatedSinceRequest.Threshold}"; var requestUrl = RequestUrlHelpers.ConstructRequest(updatedSinceRequest); expectedUrl .ToUri() .Should().Be(requestUrl); }
public Task <UpdatedSince> GetUpdateInfoAsync(UpdatedSinceRequest updatedSinceRequest) { var requestUrl = RequestUrlHelpers .ConstructRequest(updatedSinceRequest); return(httpFacade .GetAsync <UpdatedSince>(requestUrl)); }
public void Constructed_url_with_updated_since_data_returns_exception_without_zone_or_coor() { var updatedSinceRequest = new UpdatedSinceRequest { Since = DateTime.Now.AddDays(-5), Start = DateTime.Now.AddDays(-2), End = DateTime.Now.AddDays(-1), Limit = 100, Threshold = "P1D", }; Assert.Throws <ArgumentNullException>(() => RequestUrlHelpers.ConstructRequest(updatedSinceRequest)); }
public async Task Get_update_info_returns_data_Async( UpdatedSinceRequest updatedSinceRequest, UpdatedSince updatedSince) { httpFacade .GetAsync <UpdatedSince>(Arg.Any <Uri>()) .Returns(updatedSince); var result = await sut .GetUpdateInfoAsync(updatedSinceRequest) .ConfigureAwait(false); result.Should().NotBeNull(); result.Should().BeEquivalentTo(updatedSince); }
/// <summary> /// Construct the request to retrieve /// information on data updates. /// </summary> /// <param name="updatedSinceRequest"></param> /// <returns></returns> public static Uri ConstructRequest(UpdatedSinceRequest updatedSinceRequest) { if (updatedSinceRequest is null) { throw new ArgumentNullException(nameof(updatedSinceRequest)); } var initialUrl = string.Concat( ApiConstants.BaseUrl, ApiConstants.Version3, ApiAreas.UpdatedSince); string queryUrl; if (!string.IsNullOrEmpty(updatedSinceRequest.Zone)) { queryUrl = string.Concat( initialUrl, ApiConstants.ZoneParameter, updatedSinceRequest.Zone); queryUrl = BuildQueryString(updatedSinceRequest, queryUrl); return(queryUrl.ToUri()); } if (updatedSinceRequest.Latitude != null && updatedSinceRequest.Longitude != null) { queryUrl = string.Concat( initialUrl, ApiConstants.LatitudeParameter, updatedSinceRequest.Latitude, ApiConstants.LongitudeParameter, updatedSinceRequest.Longitude); queryUrl = BuildQueryString(updatedSinceRequest, queryUrl); return(queryUrl.ToUri()); } throw new ArgumentNullException(updatedSinceRequest.Zone, "Zone or Latitude/Longitude must be passed as parameters."); }
/// <summary> /// Build the query string parameters /// for the updated since request. /// </summary> /// <param name="updatedSinceRequest"></param> /// <param name="queryUrl"></param> /// <returns></returns> private static string BuildQueryString(UpdatedSinceRequest updatedSinceRequest, string queryUrl) { if (updatedSinceRequest.Start != null) { queryUrl = queryUrl + "&since=" + updatedSinceRequest.Since .ToString(DateFormatConstants.StandardDateFormat); } if (updatedSinceRequest.Start != null) { queryUrl = queryUrl + "&start=" + updatedSinceRequest.Start.Value .ToString(DateFormatConstants.StandardDateFormat, CultureInfo.InvariantCulture); } if (updatedSinceRequest.End != null) { queryUrl = queryUrl + "&end=" + updatedSinceRequest.End.Value .ToString(DateFormatConstants.StandardDateFormat, CultureInfo.InvariantCulture); } if (updatedSinceRequest.Limit != null) { queryUrl = queryUrl + "&limit=" + updatedSinceRequest.Limit; } if (updatedSinceRequest.Threshold != null) { queryUrl = queryUrl + "&threshold=" + updatedSinceRequest.Threshold; } return(queryUrl); }
public void Constructed_url_with_updated_since_data_is_correct( UpdatedSinceRequest updatedSinceRequest) { if (updatedSinceRequest is null) { throw new ArgumentNullException(nameof(updatedSinceRequest)); } var expectedUrl = $"https://api.electricitymap.org/v3/updated-since/" + $"?zone={updatedSinceRequest.Zone}" + $"&since={updatedSinceRequest.Since:o}" + $"&start={updatedSinceRequest.Start:o}" + $"&end={updatedSinceRequest.End:o}" + $"&limit={updatedSinceRequest.Limit}" + $"&threshold={updatedSinceRequest.Threshold}"; var requestUrl = RequestUrlHelpers .ConstructRequest(updatedSinceRequest); expectedUrl .ToUri() .Should().Be(requestUrl); }