UpdateFromHeader() публичный Метод

public UpdateFromHeader ( string>.IDictionary header ) : void
header string>.IDictionary
Результат void
Пример #1
0
        public void UpdateFromHeader_DictionaryTest()
        {
            var status = new TwitterApiStatus();

            var header = new Dictionary <string, string>
            {
                ["X-Rate-Limit-Limit"]         = "150",
                ["X-Rate-Limit-Remaining"]     = "100",
                ["X-Rate-Limit-Reset"]         = "1356998400",
                ["X-MediaRateLimit-Limit"]     = "30",
                ["X-MediaRateLimit-Remaining"] = "20",
                ["X-MediaRateLimit-Reset"]     = "1357084800",
                ["X-Access-Level"]             = "read-write-directmessages",
            };

            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(100, rateLimit.AccessLimitRemain);
            Assert.Equal(new DateTimeUtc(2013, 1, 1, 0, 0, 0), rateLimit.AccessLimitResetDate);

            var mediaLimit = status.MediaUploadLimit;

            Assert.Equal(30, mediaLimit.AccessLimitCount);
            Assert.Equal(20, mediaLimit.AccessLimitRemain);
            Assert.Equal(new DateTimeUtc(2013, 1, 2, 0, 0, 0), mediaLimit.AccessLimitResetDate);

            Assert.Equal(TwitterApiAccessLevel.ReadWriteAndDirectMessage, status.AccessLevel);
        }
Пример #2
0
        public void UpdateFromHeader_HttpClientTest()
        {
            var status = new TwitterApiStatus();

            var response = new HttpResponseMessage
            {
                Headers =
                {
                    { "x-rate-limit-limit",         "150"                       },
                    { "x-rate-limit-remaining",     "100"                       },
                    { "x-rate-limit-reset",         "1356998400"                },
                    { "x-mediaratelimit-limit",     "30"                        },
                    { "x-mediaratelimit-remaining", "20"                        },
                    { "x-mediaratelimit-reset",     "1357084800"                },
                    { "x-access-level",             "read-write-directmessages" },
                },
            };

            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(100, rateLimit.AccessLimitRemain);
            Assert.Equal(new DateTimeUtc(2013, 1, 1, 0, 0, 0), rateLimit.AccessLimitResetDate);

            var mediaLimit = status.MediaUploadLimit;

            Assert.Equal(30, mediaLimit.AccessLimitCount);
            Assert.Equal(20, mediaLimit.AccessLimitRemain);
            Assert.Equal(new DateTimeUtc(2013, 1, 2, 0, 0, 0), mediaLimit.AccessLimitResetDate);

            Assert.Equal(TwitterApiAccessLevel.ReadWriteAndDirectMessage, status.AccessLevel);
        }
Пример #3
0
        public void UpdateFromHeaderTest()
        {
            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-Rate-Limit-Remaining", "100" },
                { "X-Rate-Limit-Reset", "1356998400" },
                { "X-MediaRateLimit-Limit", "30" },
                { "X-MediaRateLimit-Remaining", "20" },
                { "X-MediaRateLimit-Reset", "1357084800" },
                { "X-Access-Level", "read-write-directmessages" },
            };

            status.UpdateFromHeader(header, "/statuses/home_timeline");

            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);

            var mediaLimit = status.MediaUploadLimit;

            Assert.Equal(30, mediaLimit.AccessLimitCount);
            Assert.Equal(20, mediaLimit.AccessLimitRemain);
            Assert.Equal(new DateTime(2013, 1, 2, 0, 0, 0, DateTimeKind.Utc).ToLocalTime(), mediaLimit.AccessLimitResetDate);

            Assert.Equal(TwitterApiAccessLevel.ReadWriteAndDirectMessage, status.AccessLevel);

            Assert.True(eventCalled);
        }
Пример #4
0
        public void UpdateFromHeaderTest()
        {
            var status = new TwitterApiStatus();

            var eventCalled = false;

            status.AccessLimitUpdated += (s, e) => eventCalled = true;

            var header = new Dictionary <string, string>
            {
                { "X-RateLimit-Limit", "150" },
                { "X-RateLimit-Remaining", "100" },
                { "X-RateLimit-Reset", "1356998400" },
                { "X-MediaRateLimit-Limit", "30" },
                { "X-MediaRateLimit-Remaining", "20" },
                { "X-MediaRateLimit-Reset", "1357084800" },
                { "X-Access-Level", "read-write-directmessages" },
            };

            status.UpdateFromHeader(header);

            var rateLimit = status.AccessLimit;

            Assert.That(rateLimit.AccessLimitCount, Is.EqualTo(150));
            Assert.That(rateLimit.AccessLimitRemain, Is.EqualTo(100));
            Assert.That(rateLimit.AccessLimitResetDate, Is.EqualTo(new DateTime(2013, 1, 1, 0, 0, 0, DateTimeKind.Utc).ToLocalTime()));

            var mediaLimit = status.MediaUploadLimit;

            Assert.That(mediaLimit.AccessLimitCount, Is.EqualTo(30));
            Assert.That(mediaLimit.AccessLimitRemain, Is.EqualTo(20));
            Assert.That(mediaLimit.AccessLimitResetDate, Is.EqualTo(new DateTime(2013, 1, 2, 0, 0, 0, DateTimeKind.Utc).ToLocalTime()));

            Assert.That(status.AccessLevel, Is.EqualTo(TwitterApiAccessLevel.ReadWriteAndDirectMessage));

            Assert.That(eventCalled, Is.True);
        }
Пример #5
0
        public void UpdateFromHeaderTest()
        {
            var status = new TwitterApiStatus();

            var eventCalled = false;
            status.AccessLimitUpdated += (s, e) => eventCalled = true;

            var header = new Dictionary<string, string>
            {
                {"X-RateLimit-Limit", "150"},
                {"X-RateLimit-Remaining", "100"},
                {"X-RateLimit-Reset", "1356998400"},
                {"X-MediaRateLimit-Limit", "30"},
                {"X-MediaRateLimit-Remaining", "20"},
                {"X-MediaRateLimit-Reset", "1357084800"},
                {"X-Access-Level", "read-write-directmessages"},
            };

            status.UpdateFromHeader(header);

            var rateLimit = status.AccessLimit;
            Assert.That(rateLimit.AccessLimitCount, Is.EqualTo(150));
            Assert.That(rateLimit.AccessLimitRemain, Is.EqualTo(100));
            Assert.That(rateLimit.AccessLimitResetDate, Is.EqualTo(new DateTime(2013, 1, 1, 0, 0, 0, DateTimeKind.Utc).ToLocalTime()));

            var mediaLimit = status.MediaUploadLimit;
            Assert.That(mediaLimit.AccessLimitCount, Is.EqualTo(30));
            Assert.That(mediaLimit.AccessLimitRemain, Is.EqualTo(20));
            Assert.That(mediaLimit.AccessLimitResetDate, Is.EqualTo(new DateTime(2013, 1, 2, 0, 0, 0, DateTimeKind.Utc).ToLocalTime()));

            Assert.That(status.AccessLevel, Is.EqualTo(TwitterApiAccessLevel.ReadWriteAndDirectMessage));

            Assert.That(eventCalled, Is.True);
        }
Пример #6
0
        public void UpdateFromHeader_HttpClientTest()
        {
            var status = new TwitterApiStatus();

            var eventCalled = false;
            status.AccessLimitUpdated += (s, e) => eventCalled = true;

            var response = new HttpResponseMessage
            {
                Headers =
                {
                    { "x-rate-limit-limit", "150" },
                    { "x-rate-limit-remaining", "100" },
                    { "x-rate-limit-reset", "1356998400" },
                    { "x-mediaratelimit-limit", "30" },
                    { "x-mediaratelimit-remaining", "20" },
                    { "x-mediaratelimit-reset", "1357084800" },
                    { "x-access-level", "read-write-directmessages" },
                },
            };

            status.UpdateFromHeader(response.Headers, "/statuses/home_timeline");

            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);

            var mediaLimit = status.MediaUploadLimit;
            Assert.Equal(30, mediaLimit.AccessLimitCount);
            Assert.Equal(20, mediaLimit.AccessLimitRemain);
            Assert.Equal(new DateTime(2013, 1, 2, 0, 0, 0, DateTimeKind.Utc).ToLocalTime(), mediaLimit.AccessLimitResetDate);

            Assert.Equal(TwitterApiAccessLevel.ReadWriteAndDirectMessage, status.AccessLevel);

            Assert.True(eventCalled);
        }
Пример #7
0
        public void UpdateFromHeader_DictionaryTest()
        {
            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-Rate-Limit-Remaining"] = "100",
                ["X-Rate-Limit-Reset"] = "1356998400",
                ["X-MediaRateLimit-Limit"] = "30",
                ["X-MediaRateLimit-Remaining"] = "20",
                ["X-MediaRateLimit-Reset"] = "1357084800",
                ["X-Access-Level"] = "read-write-directmessages",
            };

            status.UpdateFromHeader(header, "/statuses/home_timeline");

            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);

            var mediaLimit = status.MediaUploadLimit;
            Assert.Equal(30, mediaLimit.AccessLimitCount);
            Assert.Equal(20, mediaLimit.AccessLimitRemain);
            Assert.Equal(new DateTime(2013, 1, 2, 0, 0, 0, DateTimeKind.Utc).ToLocalTime(), mediaLimit.AccessLimitResetDate);

            Assert.Equal(TwitterApiAccessLevel.ReadWriteAndDirectMessage, status.AccessLevel);

            Assert.True(eventCalled);
        }