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);
        }
        public void GetSurveyResponseOverviewListIsDeserialised()
        {
            var client = new MockWebClient();

            client.Responses.Add(@"
                {""per_page"":50,""total"":3,""data"":[{""href"":""https:\/\/api.surveymonkey.net\/v3\/surveys\/84672934\/responses\/4968420283"",""id"":""4968420283""},{""href"":""https:\/\/api.surveymonkey.net\/v3\/surveys\/84672934\/responses\/4968420510"",""id"":""4968420510""},{""href"":""https:\/\/api.surveymonkey.net\/v3\/surveys\/84672934\/responses\/4968420845"",""id"":""4968420845""}],""page"":1,""links"":{""self"":""https:\/\/api.surveymonkey.net\/v3\/surveys\/84672934\/responses?page=1&per_page=50""}}
            ");

            var api     = new SurveyMonkeyApi("TestApiKey", "TestOAuthToken", client);
            var results = api.GetSurveyResponseOverviewList(84672934);

            Assert.AreEqual(1, client.Requests.Count);

            Assert.AreEqual(4968420283, results.First().Id);
            Assert.IsNull(results.First().DateModified);
            Assert.IsNull(results.First().DateCreated);
            Assert.IsNull(results.First().TotalTime);
            Assert.IsNull(results.First().CustomVariables);
            Assert.IsNull(results.First().IpAddress);
            Assert.IsNull(results.First().ResponseStatus);
            Assert.IsNull(results.First().CustomValue);
            Assert.IsNull(results.First().LogicPath);
            Assert.IsNull(results.First().PagePath);
            Assert.IsNull(results.First().Metadata);
            Assert.IsNull(results.First().RecipientId);
            Assert.IsNull(results.First().SurveyId);
            Assert.IsNull(results.First().CollectorId);
            Assert.IsNull(results.First().CollectionMode);
            Assert.AreEqual(@"https://api.surveymonkey.net/v3/surveys/84672934/responses/4968420283", results.First().Href);
            Assert.IsNull(results.First().EditUrl);
            Assert.IsNull(results.First().AnalyzeUrl);
            Assert.IsNull(results.First().Pages);
        }