public void RetrySequenceIsRespected() { var toleranceMilliseconds = 80; var response = @"{""id"":""1234"",""name"":""Test Group"",""member_count"":1,""max_invites"":100,""date_created"":""2015-10-06T12:56:55+00:00""}"; var client = new MockWebClient(); client.Responses.Add(response); client.Responses.Add(response); client.Responses.Add(response); client.Exceptions.Add(new WebException("1")); client.Exceptions.Add(new WebException("2")); client.Exceptions.Add(new WebException("3")); var api = new SurveyMonkeyApi("key", "token", client, new [] { 1, 2 }); var exception = Assert.Throws <WebException>(delegate { api.GetGroupDetails(1234); }); Assert.AreEqual("3", exception.Message); Assert.AreEqual(3, client.Requests.Count); Assert.GreaterOrEqual(toleranceMilliseconds, client.Requests.First().TimeSinceInitialisation); Assert.LessOrEqual(1000 - toleranceMilliseconds, client.Requests.Skip(1).First().TimeSinceInitialisation); Assert.GreaterOrEqual(1000 + toleranceMilliseconds, client.Requests.Skip(1).First().TimeSinceInitialisation); Assert.LessOrEqual(3000 - toleranceMilliseconds, client.Requests.Skip(2).First().TimeSinceInitialisation); Assert.GreaterOrEqual(3000 + toleranceMilliseconds, client.Requests.Skip(2).First().TimeSinceInitialisation); }
public void GetGroupDetailsIsDeserialised() { var client = new MockWebClient(); client.Responses.Add(@" {""id"":""1234"",""name"":""Test Group"",""member_count"":1,""max_invites"":100,""date_created"":""2015-10-06T12:56:55+00:00""} "); var api = new SurveyMonkeyApi("TestApiKey", "TestOAuthToken", client); var results = api.GetGroupDetails(1234); Assert.AreEqual(1234, results.Id); Assert.AreEqual("Test Group", results.Name); Assert.AreEqual(100, results.MaxInvites); Assert.AreEqual(new DateTime(2015, 10, 6, 12, 56, 55, DateTimeKind.Utc), results.DateCreated); Assert.IsNull(results.OwnerEmail); }