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

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

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

            // Assert
            mockedHttpClient.Verify(hc =>
                    hc.PutAsJsonAsync(
                        It.Is<string>(url => url.EndsWith("Surveys/" + surveyId + "/Assignment/")),
                        It.Is<SurveyInterviewerAssignmentChangeModel>(model => model.InterviewerId == interviewerId && model.Assign)),
                    Times.Once());
        }
 public void TestUnassignAsync_SurveyIdIsNull_Throws()
 {
     var target = new NfieldSurveyInterviewerAssignmentsService();
     Assert.Throws<ArgumentNullException>(
         () => UnwrapAggregateException(target.UnassignAsync(null, "interviewerId")));
 }