public void TestUpdateRateLimitResponse() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); twilioRestClient.Request(Arg.Any <Request>()) .Returns(new Response( System.Net.HttpStatusCode.OK, "{\"sid\": \"RKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"service_sid\": \"VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"account_sid\": \"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"unique_name\": \"unique.name\",\"description\": \"Description\",\"date_created\": \"2015-07-30T20:00:00Z\",\"date_updated\": \"2015-07-30T20:00:00Z\",\"url\": \"https://verify.twilio.com/v2/Services/VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/RateLimits/RKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"links\": {\"buckets\": \"https://verify.twilio.com/v2/Services/VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/RateLimits/RKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Buckets\"}}" )); var response = RateLimitResource.Update("VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "RKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient); Assert.NotNull(response); }
public void TestDeleteResponse() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); twilioRestClient.Request(Arg.Any <Request>()) .Returns(new Response( System.Net.HttpStatusCode.NoContent, "null" )); var response = RateLimitResource.Delete("VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "RKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient); Assert.NotNull(response); }
public void TestReadAllResponse() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); twilioRestClient.AccountSid.Returns("ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); twilioRestClient.Request(Arg.Any <Request>()) .Returns(new Response( System.Net.HttpStatusCode.OK, "{\"meta\": {\"page\": 0,\"page_size\": 50,\"first_page_url\": \"https://verify.twilio.com/v2/Services/VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/RateLimits?PageSize=50&Page=0\",\"previous_page_url\": null,\"next_page_url\": null,\"key\": \"rate_limits\",\"url\": \"https://verify.twilio.com/v2/Services/VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/RateLimits?PageSize=50&Page=0\"},\"rate_limits\": [{\"sid\": \"RKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"service_sid\": \"VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"account_sid\": \"ACaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"unique_name\": \"unique.name\",\"description\": \"Description\",\"date_created\": \"2015-07-30T20:00:00Z\",\"date_updated\": \"2015-07-30T20:00:00Z\",\"url\": \"https://verify.twilio.com/v2/Services/VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/RateLimits/RKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"links\": {\"buckets\": \"https://verify.twilio.com/v2/Services/VAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/RateLimits/RKaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/Buckets\"}}]}" )); var response = RateLimitResource.Read("VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient); Assert.NotNull(response); }
public void TestUpdateRequest() { var twilioRestClient = Substitute.For <ITwilioRestClient>(); var request = new Request( HttpMethod.Post, Twilio.Rest.Domain.Verify, "/v2/Services/VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/RateLimits/RKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "" ); twilioRestClient.Request(request).Throws(new ApiException("Server Error, no content")); try { RateLimitResource.Update("VAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", "RKXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", client: twilioRestClient); Assert.Fail("Expected TwilioException to be thrown for 500"); } catch (ApiException) {} twilioRestClient.Received().Request(request); }
internal void UpdateRateLimits(TweetListType TweetType, RateLimitResource rateLimiting, string additionalInfo = "") { try { if (this.RateLimits == null) { this.RateLimits = new RateLimitStatus(); this.RateLimits.Resources = new Dictionary<string, Dictionary<string, RateLimitResource>>(); } switch (TweetType) { case TweetListType.FriendsTimeline: if (!this.RateLimits.Resources.ContainsKey("statuses")) this.RateLimits.Resources.Add("statuses", new Dictionary<string, RateLimitResource>()); if (this.RateLimits.Resources["statuses"] != null && !this.RateLimits.Resources["statuses"].ContainsKey("/statuses/home_timeline")) this.RateLimits.Resources["statuses"].Add("/statuses/home_timeline", new RateLimitResource()); if (this.RateLimits.Resources["statuses"]["/statuses/home_timeline"] == null || rateLimiting.Limit <= 0) break; this.RateLimits.Resources["statuses"]["/statuses/home_timeline"] = rateLimiting; break; case TweetListType.DirectMessages: if (!this.RateLimits.Resources.ContainsKey("direct_messages")) this.RateLimits.Resources.Add("direct_messages", new Dictionary<string, RateLimitResource>()); if (additionalInfo == "R") { if (this.RateLimits.Resources["direct_messages"] != null && !this.RateLimits.Resources["direct_messages"].ContainsKey("/direct_messages")) this.RateLimits.Resources["direct_messages"].Add("/direct_messages", new RateLimitResource()); if (this.RateLimits.Resources["direct_messages"]["/direct_messages"] != null && rateLimiting.Limit > 0) this.RateLimits.Resources["direct_messages"]["/direct_messages"] = rateLimiting; } if (!(additionalInfo == "S")) break; if (this.RateLimits.Resources["direct_messages"] != null && !this.RateLimits.Resources["direct_messages"].ContainsKey("/direct_messages/sent")) this.RateLimits.Resources["direct_messages"].Add("/direct_messages/sent", new RateLimitResource()); if (this.RateLimits.Resources["direct_messages"]["/direct_messages/sent"] != null && rateLimiting.Limit > 0) this.RateLimits.Resources["direct_messages"]["/direct_messages/sent"] = rateLimiting; break; case TweetListType.Search: if (!this.RateLimits.Resources.ContainsKey("search")) this.RateLimits.Resources.Add("search", new Dictionary<string, RateLimitResource>()); if (this.RateLimits.Resources["search"] != null && !this.RateLimits.Resources["search"].ContainsKey("/search/tweets")) this.RateLimits.Resources["search"].Add("/search/tweets", new RateLimitResource()); if (this.RateLimits.Resources["search"]["/search/tweets"] == null || rateLimiting.Limit <= 0) break; this.RateLimits.Resources["search"]["/search/tweets"] = rateLimiting; break; case TweetListType.UserTimeline: if (!this.RateLimits.Resources.ContainsKey("statuses")) this.RateLimits.Resources.Add("statuses", new Dictionary<string, RateLimitResource>()); if (this.RateLimits.Resources["statuses"] != null && !this.RateLimits.Resources["statuses"].ContainsKey("/statuses/user_timeline")) this.RateLimits.Resources["statuses"].Add("/statuses/user_timeline", new RateLimitResource()); if (this.RateLimits.Resources["statuses"]["/statuses/user_timeline"] == null || rateLimiting.Limit <= 0) break; this.RateLimits.Resources["statuses"]["/statuses/user_timeline"] = rateLimiting; break; case TweetListType.List: if (!this.RateLimits.Resources.ContainsKey("lists")) this.RateLimits.Resources.Add("lists", new Dictionary<string, RateLimitResource>()); if (this.RateLimits.Resources["lists"] != null && !this.RateLimits.Resources["lists"].ContainsKey("/lists/statuses")) this.RateLimits.Resources["lists"].Add("/lists/statuses", new RateLimitResource()); if (this.RateLimits.Resources["lists"]["/lists/statuses"] == null || rateLimiting.Limit <= 0) break; this.RateLimits.Resources["lists"]["/lists/statuses"] = rateLimiting; break; case TweetListType.MentionsMyTweetsRetweeted: if (!this.RateLimits.Resources.ContainsKey("statuses")) this.RateLimits.Resources.Add("statuses", new Dictionary<string, RateLimitResource>()); if (additionalInfo == "M") { if (this.RateLimits.Resources["statuses"] != null && !this.RateLimits.Resources["statuses"].ContainsKey("/statuses/mentions_timeline")) this.RateLimits.Resources["statuses"].Add("/statuses/mentions_timeline", new RateLimitResource()); if (this.RateLimits.Resources["statuses"]["/statuses/mentions_timeline"] != null && rateLimiting.Limit > 0) this.RateLimits.Resources["statuses"]["/statuses/mentions_timeline"] = rateLimiting; } if (!(additionalInfo == "R")) break; if (this.RateLimits.Resources["statuses"] != null && !this.RateLimits.Resources["statuses"].ContainsKey("/statuses/retweets_of_me")) this.RateLimits.Resources["statuses"].Add("/statuses/retweets_of_me", new RateLimitResource()); if (this.RateLimits.Resources["statuses"]["/statuses/retweets_of_me"] != null && rateLimiting.Limit > 0) this.RateLimits.Resources["statuses"]["/statuses/retweets_of_me"] = rateLimiting; break; case TweetListType.MyTweets: if (!this.RateLimits.Resources.ContainsKey("statuses")) this.RateLimits.Resources.Add("statuses", new Dictionary<string, RateLimitResource>()); if (this.RateLimits.Resources["statuses"] != null && !this.RateLimits.Resources["statuses"].ContainsKey("/statuses/user_timeline")) this.RateLimits.Resources["statuses"].Add("/statuses/user_timeline", new RateLimitResource()); if (this.RateLimits.Resources["statuses"]["/statuses/user_timeline"] == null || rateLimiting.Limit <= 0) break; this.RateLimits.Resources["statuses"]["/statuses/user_timeline"] = rateLimiting; break; case TweetListType.Favourites: if (!this.RateLimits.Resources.ContainsKey("statuses")) this.RateLimits.Resources.Add("statuses", new Dictionary<string, RateLimitResource>()); if (this.RateLimits.Resources["statuses"] != null && !this.RateLimits.Resources["statuses"].ContainsKey("/favorites/list")) this.RateLimits.Resources["statuses"].Add("/favorites/list", new RateLimitResource()); if (this.RateLimits.Resources["statuses"]["/favorites/list"] == null || rateLimiting.Limit <= 0) break; this.RateLimits.Resources["statuses"]["/favorites/list"] = rateLimiting; break; case TweetListType.Conversation: if (!this.RateLimits.Resources.ContainsKey("statuses")) this.RateLimits.Resources.Add("statuses", new Dictionary<string, RateLimitResource>()); if (this.RateLimits.Resources["statuses"] != null && !this.RateLimits.Resources["statuses"].ContainsKey("/statuses/show/:id")) this.RateLimits.Resources["statuses"].Add("/statuses/show/:id", new RateLimitResource()); if (this.RateLimits.Resources["statuses"]["/statuses/show/:id"] == null || rateLimiting.Limit <= 0) break; this.RateLimits.Resources["statuses"]["/statuses/show/:id"] = rateLimiting; break; case TweetListType.RetweetUsers: if (!this.RateLimits.Resources.ContainsKey("statuses")) this.RateLimits.Resources.Add("statuses", new Dictionary<string, RateLimitResource>()); if (this.RateLimits.Resources["statuses"] != null && !this.RateLimits.Resources["statuses"].ContainsKey("/statuses/retweets/:id")) this.RateLimits.Resources["statuses"].Add("/statuses/retweets/:id", new RateLimitResource()); if (this.RateLimits.Resources["statuses"]["/statuses/retweets/:id"] == null || rateLimiting.Limit <= 0) break; this.RateLimits.Resources["statuses"]["/statuses/retweets/:id"] = rateLimiting; break; } } catch { } }