/// <summary> /// Encrypts the data. /// </summary> /// <param name="surveyId">The survey identifier.</param> /// <param name="model">The model.</param> /// <returns></returns> public Task <string> EncryptData(string surveyId, DataCryptographyModel model) { if (string.IsNullOrEmpty((surveyId))) { throw new ArgumentNullException(nameof(surveyId)); } if (model == null) { throw new ArgumentNullException(nameof(model)); } var uri = SurveyDataEncryptionUrl(surveyId); var result = Client.PostAsJsonAsync(uri, model). ContinueWith(task => task.Result.Content.ReadAsAsync <string>().Result) .FlattenExceptions(); return(result); }
public void TestEncryption_SurveyId_DoesntExists_ReturnsResourceNotFoundException() { var dataModel = new DataCryptographyModel { Data = new Dictionary <string, string> { { "DataExample1", "ValueExample1" }, { "DataExample2", "ValueExample2" } }, IV = "VGhpc0lzQUJhc2U2NDY0Ng==" }; _mockedNfieldConnection = new Mock <INfieldConnectionClient>(); _mockedHttpClient = CreateHttpClientMock(_mockedNfieldConnection); // API call response var expectedResult = @"IV=VGhpc0lzQUJhc2U2NDY0Ng==&DATA=kDdE+WOvPi45K6q1fC8iLIJ+M7j5xZmETPf24AS81jk="; _mockedHttpClient.Setup(client => client.PostAsJsonAsync(new Uri(ServiceAddress, $"Surveys/{SurveyId}/RespondentDataEncrypt"), dataModel)) .Returns(CreateTask(HttpStatusCode.OK, new ObjectContent <string>(expectedResult, new JsonMediaTypeFormatter()))); _target = new NfieldRespondentDataEncryptService(); _target.InitializeNfieldConnection(_mockedNfieldConnection.Object); var sdkResult = _target.EncryptData(SurveyId, dataModel).Result; Assert.Equal(expectedResult, sdkResult); }