/// <summary> /// See <see cref="INfieldSurveyRelocationsService.UpdateAsync"/> /// </summary> public Task UpdateAsync(string surveyId, SurveyRelocation relocation) { CheckSurveyId(surveyId); if (relocation == null) { throw new ArgumentNullException(nameof(relocation)); } return Client.PutAsJsonAsync(RelocationsApi(surveyId).AbsoluteUri, relocation) .ContinueWith(task => task.Result.Content.ReadAsStringAsync().Result) .ContinueWith(task => JsonConvert.DeserializeObject<SurveyRelocation>(task.Result)) .FlattenExceptions(); }
public void TestPutAsync_Always_CallsCorrectURI() { var relocation = new SurveyRelocation { Reason = "reason X", Url = "url X" }; var mockedNfieldConnection = new Mock<INfieldConnectionClient>(); var mockedHttpClient = CreateHttpClientMock(mockedNfieldConnection); mockedHttpClient .Setup(client => client.PutAsJsonAsync(It.IsAny<string>(), It.IsAny<SurveyRelocation>())) .Returns(CreateTask(HttpStatusCode.OK, new StringContent(JsonConvert.SerializeObject(It.IsAny<SurveyRelocation>())))); var target = new NfieldSurveyRelocationsService(); target.InitializeNfieldConnection(mockedNfieldConnection.Object); target.UpdateAsync(SurveyId, relocation).Wait(); mockedHttpClient .Verify( client => client.PutAsJsonAsync(ServiceAddress + "Surveys/" + SurveyId + "/Relocations", It.IsAny<SurveyRelocation>()), Times.Once()); }
public void TestUpdateAsync_ServerAcceptsRelocations_ReturnsOk() { var relocation = new SurveyRelocation {Reason = "reason X", Url = "url X"}; var mockedNfieldConnection = new Mock<INfieldConnectionClient>(); var mockedHttpClient = CreateHttpClientMock(mockedNfieldConnection); var content = new StringContent(JsonConvert.SerializeObject(relocation)); mockedHttpClient .Setup( client => client.PutAsJsonAsync(ServiceAddress + "Surveys/" + SurveyId + "/Relocations", relocation)) .Returns(CreateTask(HttpStatusCode.OK, content)); var target = new NfieldSurveyRelocationsService(); target.InitializeNfieldConnection(mockedNfieldConnection.Object); Assert.DoesNotThrow(() => target.UpdateAsync(SurveyId, relocation).Wait()); }