public void TestAddAsync_ValidSurveyResponseCode_CallsCorrectUrl()
        {
            // Arrange
            const string surveyId = "surveyId";
            const string interviewerId = "interviewerId";
            var mockedNfieldConnection = new Mock<INfieldConnectionClient>();
            var mockedHttpClient = CreateHttpClientMock(mockedNfieldConnection);

            mockedHttpClient.Setup(client => client.PostAsJsonAsync(It.IsAny<string>(), It.IsAny<SurveyInterviewerAddModel>()))
                .Returns(CreateTask(HttpStatusCode.OK));
            var target = new NfieldSurveyInterviewersService();
            target.InitializeNfieldConnection(mockedNfieldConnection.Object);

            // Act
            target.AddAsync(surveyId, interviewerId).Wait();

            // Assert
            mockedHttpClient.Verify(hc =>
                    hc.PostAsJsonAsync(
                        It.Is<string>(url => url.EndsWith("Surveys/" + surveyId + "/Interviewers/")),
                        It.Is<SurveyInterviewerAddModel>(model => model.InterviewerId == interviewerId)),
                    Times.Once());
        }
 public void TestAddAsync_SurveyIdIsNull_Throws()
 {
     var target = new NfieldSurveyInterviewersService();
     Assert.Throws<ArgumentNullException>(
         () => UnwrapAggregateException(target.AddAsync(null, "interviewerId")));
 }