public void GetResponseOverviewIsDeserialised()
        {
            var client = new MockWebClient();

            client.Responses.Add(@"
                {""total_time"":8,""href"":""https:\/\/api.surveymonkey.net\/v3\/collectors\/91395530\/responses\/4968420283"",""custom_variables"":{},""ip_address"":""18.187.48.612"",""id"":""4968420283"",""logic_path"":{},""date_modified"":""2016-09-13T07:29:09+00:00"",""response_status"":""completed"",""custom_value"":"""",""analyze_url"":""http:\/\/www.surveymonkey.com\/analyze\/browse\/9GyriWHWhcPYK8l_2FdYdcIEvqmtt5hBjuRL79fS2mOFI_3D?respondent_id=4968420283"",""page_path"":[],""recipient_id"":"""",""collector_id"":""91395530"",""date_created"":""2016-09-13T07:29:01+00:00"",""survey_id"":""84672934"",""collection_mode"":""default"",""edit_url"":""http:\/\/www.surveymonkey.com\/r\/?sm=db1E_2B5FvGitK17_2F_2F8_2Blnhcl_2BCTwKHT5dPY9EBCDJmi8tUeGDo34qJJ5CuL7ceRS7"",""metadata"":{}}
            ");
            var api    = new SurveyMonkeyApi("TestApiKey", "TestOAuthToken", client);
            var result = api.GetCollectorResponseDetails(84672934, 4968420283);

            Assert.AreEqual(@"http://www.surveymonkey.com/analyze/browse/9GyriWHWhcPYK8l_2FdYdcIEvqmtt5hBjuRL79fS2mOFI_3D?respondent_id=4968420283", result.AnalyzeUrl);
            Assert.AreEqual(CollectionMode.Default, result.CollectionMode);
            Assert.AreEqual(91395530, result.CollectorId);
            Assert.AreEqual(String.Empty, result.CustomValue);
            Assert.IsEmpty(result.CustomVariables);
            Assert.AreEqual(new DateTime(2016, 9, 13, 07, 29, 01, DateTimeKind.Utc), result.DateCreated);
            Assert.AreEqual(new DateTime(2016, 9, 13, 07, 29, 09, DateTimeKind.Utc), result.DateModified);
            Assert.AreEqual(@"http://www.surveymonkey.com/r/?sm=db1E_2B5FvGitK17_2F_2F8_2Blnhcl_2BCTwKHT5dPY9EBCDJmi8tUeGDo34qJJ5CuL7ceRS7", result.EditUrl);
            Assert.AreEqual(@"https://api.surveymonkey.net/v3/collectors/91395530/responses/4968420283", result.Href);
            Assert.AreEqual(4968420283, result.Id);
            Assert.AreEqual("18.187.48.612", result.IpAddress);
            Assert.IsEmpty(result.LogicPath);
            Assert.IsEmpty(result.Metadata);
            Assert.IsEmpty(result.PagePath);
            Assert.IsNull(result.RecipientId);
            Assert.AreEqual(ResponseStatus.Completed, result.ResponseStatus);
            Assert.AreEqual(84672934, result.SurveyId);
            Assert.AreEqual(8, result.TotalTime);
            Assert.IsNull(result.Pages);
        }
        public void GetResponseListUrlsAreCorrectlyGenerated()
        {
            var standardListResponse       = @"{""per_page"":50,""total"":3,""data"":[{""href"":""https:\/\/api.surveymonkey.net\/v3\/collectors\/91395530\/responses\/4968420283"",""id"":""4968420283""},{""href"":""https:\/\/api.surveymonkey.net\/v3\/collectors\/91395530\/responses\/4968420510"",""id"":""4968420510""},{""href"":""https:\/\/api.surveymonkey.net\/v3\/collectors\/91395530\/responses\/4968420845"",""id"":""4968420845""}],""page"":1,""links"":{""self"":""https:\/\/api.surveymonkey.net\/v3\/collectors\/91395530\/responses?page=1&per_page=50""}}";
            var standardIndividualResponse = @"{""total_time"":8,""href"":""https:\/\/api.surveymonkey.net\/v3\/collectors\/91395530\/responses\/4968420283"",""custom_variables"":{},""ip_address"":""18.187.48.612"",""id"":""4968420283"",""logic_path"":{},""date_modified"":""2016-09-13T07:29:09+00:00"",""response_status"":""completed"",""custom_value"":"""",""analyze_url"":""http:\/\/www.surveymonkey.com\/analyze\/browse\/9GyriWHWhcPYK8l_2FdYdcIEvqmtt5hBjuRL79fS2mOFI_3D?respondent_id=4968420283"",""page_path"":[],""recipient_id"":"""",""collector_id"":""91395530"",""date_created"":""2016-09-13T07:29:01+00:00"",""survey_id"":""84672934"",""collection_mode"":""default"",""edit_url"":""http:\/\/www.surveymonkey.com\/r\/?sm=db1E_2B5FvGitK17_2F_2F8_2Blnhcl_2BCTwKHT5dPY9EBCDJmi8tUeGDo34qJJ5CuL7ceRS7"",""metadata"":{}}";
            var client = new MockWebClient();

            client.Responses.Add(standardListResponse);
            client.Responses.Add(standardListResponse);
            client.Responses.Add(standardListResponse);
            client.Responses.Add(standardListResponse);
            client.Responses.Add(standardListResponse);
            client.Responses.Add(standardListResponse);
            client.Responses.Add(standardListResponse);
            client.Responses.Add(standardListResponse);
            client.Responses.Add(standardIndividualResponse);
            client.Responses.Add(standardIndividualResponse);
            client.Responses.Add(standardIndividualResponse);
            client.Responses.Add(standardIndividualResponse);
            var api = new SurveyMonkeyApi("TestApiKey", "TestOAuthToken", client);

            api.GetSurveyResponseDetailsList(1);
            Assert.AreEqual(@"https://api.surveymonkey.net/v3/surveys/1/responses/bulk", client.Requests.Last().Url);

            api.GetCollectorResponseDetailsList(2);
            Assert.AreEqual(@"https://api.surveymonkey.net/v3/collectors/2/responses/bulk", client.Requests.Last().Url);

            api.GetSurveyResponseOverviewList(3);
            Assert.AreEqual(@"https://api.surveymonkey.net/v3/surveys/3/responses", client.Requests.Last().Url);

            api.GetCollectorResponseOverviewList(4);
            Assert.AreEqual(@"https://api.surveymonkey.net/v3/collectors/4/responses", client.Requests.Last().Url);

            api.GetSurveyResponseDetailsList(5, new GetResponseListSettings());
            Assert.AreEqual(@"https://api.surveymonkey.net/v3/surveys/5/responses/bulk", client.Requests.Last().Url);

            api.GetCollectorResponseDetailsList(6, new GetResponseListSettings());
            Assert.AreEqual(@"https://api.surveymonkey.net/v3/collectors/6/responses/bulk", client.Requests.Last().Url);

            api.GetSurveyResponseOverviewList(7, new GetResponseListSettings());
            Assert.AreEqual(@"https://api.surveymonkey.net/v3/surveys/7/responses", client.Requests.Last().Url);

            api.GetCollectorResponseOverviewList(8, new GetResponseListSettings());
            Assert.AreEqual(@"https://api.surveymonkey.net/v3/collectors/8/responses", client.Requests.Last().Url);

            api.GetSurveyResponseDetails(9, 10);
            Assert.AreEqual(@"https://api.surveymonkey.net/v3/surveys/9/responses/10/details", client.Requests.Last().Url);

            api.GetCollectorResponseDetails(11, 12);
            Assert.AreEqual(@"https://api.surveymonkey.net/v3/collectors/11/responses/12/details", client.Requests.Last().Url);

            api.GetSurveyResponseOverview(13, 14);
            Assert.AreEqual(@"https://api.surveymonkey.net/v3/surveys/13/responses/14", client.Requests.Last().Url);

            api.GetCollectorResponseOverview(15, 16);
            Assert.AreEqual(@"https://api.surveymonkey.net/v3/collectors/15/responses/16", client.Requests.Last().Url);
        }