public Task UnassignAsync(string surveyId, SamplingPointInterviewerAssignmentsModel model)
        {
            CheckParameters(surveyId, model);

            var uri = AssignmentsApi(surveyId);

            return(Client.DeleteAsJsonAsync(uri, model).FlattenExceptions());
        }
        private static void CheckParameters(string surveyId, SamplingPointInterviewerAssignmentsModel model)
        {
            if (surveyId == null)
            {
                throw new ArgumentNullException("surveyId");
            }

            if (model == null)
            {
                throw new ArgumentNullException("model");
            }
        }
        public void TestBatchAssignAsync_ServerAcceptsAssign_ReturnsNoError()
        {
            var mockedNfieldConnection = new Mock <INfieldConnectionClient>();
            var mockedHttpClient       = CreateHttpClientMock(mockedNfieldConnection);

            mockedHttpClient.Setup(client => client.PostAsJsonAsync(It.IsAny <Uri>(), It.IsAny <SamplingPointInterviewerAssignmentsModel>()))
            .Returns(CreateTask(HttpStatusCode.OK));

            var target = new NfieldSamplingPointInterviewerAssignmentsService();

            target.InitializeNfieldConnection(mockedNfieldConnection.Object);

            var model = new SamplingPointInterviewerAssignmentsModel();

            target.AssignAsync(SurveyId, model);

            mockedHttpClient.Verify(hc =>
                                    hc.PostAsJsonAsync(
                                        It.Is <Uri>(url => url.AbsolutePath.EndsWith("Surveys/" + SurveyId + "/SamplingPointsAssignments")),
                                        It.Is <SamplingPointInterviewerAssignmentsModel>(m => m == model)),
                                    Times.Once());
        }