public void UpdateFromJson(TwitterRateLimits json) { var rateLimits = from res in json.Resources from item in res.Value select( EndpointName : item.Key, Limit : new ApiLimit( item.Value.Limit, item.Value.Remaining, DateTimeUtc.FromUnixTime(item.Value.Reset) ) ); this.AccessLimit.AddAll(rateLimits.ToDictionary(x => x.EndpointName, x => x.Limit)); }
public void UpdateFromJsonTest() { var status = new TwitterApiStatus(); var json = "{\"resources\":{\"statuses\":{\"/statuses/home_timeline\":{\"limit\":150,\"remaining\":100,\"reset\":1356998400}}}}"; Assert.Raises <TwitterApiStatus.AccessLimitUpdatedEventArgs>( x => status.AccessLimitUpdated += x, x => status.AccessLimitUpdated -= x, () => status.UpdateFromJson(TwitterRateLimits.ParseJson(json)) ); var rateLimit = status.AccessLimit["/statuses/home_timeline"]; Assert.Equal(150, rateLimit.AccessLimitCount); Assert.Equal(100, rateLimit.AccessLimitRemain); Assert.Equal(new DateTimeUtc(2013, 1, 1, 0, 0, 0), rateLimit.AccessLimitResetDate); }