{
var status = new TwitterApiStatus();
- var eventCalled = false;
- status.AccessLimitUpdated += (s, e) => eventCalled = true;
-
var header = new Dictionary<string, string>
{
["X-Rate-Limit-Limit"] = "150",
["X-Access-Level"] = "read-write-directmessages",
};
- status.UpdateFromHeader(header, "/statuses/home_timeline");
+ Assert.Raises<TwitterApiStatus.AccessLimitUpdatedEventArgs>(
+ x => status.AccessLimitUpdated += x,
+ x => status.AccessLimitUpdated -= x,
+ () => status.UpdateFromHeader(header, "/statuses/home_timeline")
+ );
var rateLimit = status.AccessLimit["/statuses/home_timeline"];
Assert.Equal(150, rateLimit.AccessLimitCount);
Assert.Equal(new DateTime(2013, 1, 2, 0, 0, 0, DateTimeKind.Utc).ToLocalTime(), mediaLimit.AccessLimitResetDate);
Assert.Equal(TwitterApiAccessLevel.ReadWriteAndDirectMessage, status.AccessLevel);
-
- Assert.True(eventCalled);
}
[Fact]
{
var status = new TwitterApiStatus();
- var eventCalled = false;
- status.AccessLimitUpdated += (s, e) => eventCalled = true;
-
var response = new HttpResponseMessage
{
Headers =
},
};
- status.UpdateFromHeader(response.Headers, "/statuses/home_timeline");
+ Assert.Raises<TwitterApiStatus.AccessLimitUpdatedEventArgs>(
+ x => status.AccessLimitUpdated += x,
+ x => status.AccessLimitUpdated -= x,
+ () => status.UpdateFromHeader(response.Headers, "/statuses/home_timeline")
+ );
var rateLimit = status.AccessLimit["/statuses/home_timeline"];
Assert.Equal(150, rateLimit.AccessLimitCount);
Assert.Equal(new DateTime(2013, 1, 2, 0, 0, 0, DateTimeKind.Utc).ToLocalTime(), mediaLimit.AccessLimitResetDate);
Assert.Equal(TwitterApiAccessLevel.ReadWriteAndDirectMessage, status.AccessLevel);
-
- Assert.True(eventCalled);
}
public void UpdateFromJsonTest()
{
var status = new TwitterApiStatus();
- var eventCalled = false;
- status.AccessLimitUpdated += (s, e) => eventCalled = true;
-
var json = "{\"resources\":{\"statuses\":{\"/statuses/home_timeline\":{\"limit\":150,\"remaining\":100,\"reset\":1356998400}}}}";
- status.UpdateFromJson(TwitterRateLimits.ParseJson(json));
+
+ 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 DateTime(2013, 1, 1, 0, 0, 0, DateTimeKind.Utc).ToLocalTime(), rateLimit.AccessLimitResetDate);
-
- Assert.True(eventCalled);
}
[Fact]
{
var apiStatus = new TwitterApiStatus();
- var eventCount = 0;
- apiStatus.AccessLimitUpdated += (s, e) => eventCount++;
-
- Assert.Equal(0, eventCount);
-
- apiStatus.AccessLimit["/statuses/home_timeline"] = new ApiLimit(150, 100, new DateTime(2013, 1, 1, 0, 0, 0));
- Assert.Equal(1, eventCount);
-
- apiStatus.Reset();
- Assert.Equal(2, eventCount);
+ Assert.Raises<TwitterApiStatus.AccessLimitUpdatedEventArgs>(
+ x => apiStatus.AccessLimitUpdated += x,
+ x => apiStatus.AccessLimitUpdated -= x,
+ () => apiStatus.AccessLimit["/statuses/home_timeline"] = new ApiLimit(150, 100, new DateTime(2013, 1, 1, 0, 0, 0))
+ );
+
+ Assert.Raises<TwitterApiStatus.AccessLimitUpdatedEventArgs>(
+ x => apiStatus.AccessLimitUpdated += x,
+ x => apiStatus.AccessLimitUpdated -= x,
+ () => apiStatus.Reset()
+ );
}
}
}