public async Task <writeCaseEformDataResponse> UpdateIntegrationFormFields(IntegrationFormFieldsUpdateModel updateEntity) { var eformData = new FWTCaseEformData(); var formFields = new FWTEformField[0]; var caseEformInstance = new FWTCaseEformInstance { CaseReference = updateEntity.CaseReference, EformName = updateEntity.IntegrationFormName }; if (updateEntity.IntegrationFormFields != null && updateEntity.IntegrationFormFields.Any()) { formFields = new FWTEformField[updateEntity.IntegrationFormFields.Count]; for (int i = 0; i < updateEntity.IntegrationFormFields.Count; i++) { var caseFormField = new FWTEformField { FieldName = updateEntity.IntegrationFormFields[i].FormFieldName, FieldValue = updateEntity.IntegrationFormFields[i].FormFieldValue ?? string.Empty }; formFields[i] = caseFormField; } } eformData.CaseEformInstance = caseEformInstance; eformData.EformData = formFields; try { return(await _verintConnection.writeCaseEformDataAsync(eformData)); } catch (Exception e) { throw new Exception($"UpdateService: UpdateIntegrationFormField threw an exception while attempting to update EForm Data for case {updateEntity.CaseReference}, Exception: {e}"); } }
public async Task UpdateIntegrationFormField_ShouldUpdateFields() { // Arrange var writeCasecallback = new FWTCaseEformData(); var entity = new IntegrationFormFieldsUpdateModel { CaseReference = "12344", IntegrationFormFields = new List <IntegrationFormField> { new IntegrationFormField { FormFieldName = "field", FormFieldValue = "updatedValue" }, new IntegrationFormField { FormFieldName = "fieldname2", FormFieldValue = "newValue" }, } }; _mockClient .Setup(_ => _.writeCaseEformDataAsync(It.IsAny <FWTCaseEformData>())) .ReturnsAsync(new writeCaseEformDataResponse()) .Callback <FWTCaseEformData>(form => writeCasecallback = form); // Act await _service.UpdateIntegrationFormFields(entity); // Assert Assert.Equal(entity.IntegrationFormFields[0].FormFieldValue, writeCasecallback.EformData[0].FieldValue); Assert.Equal(entity.IntegrationFormFields[0].FormFieldName, writeCasecallback.EformData[0].FieldName); Assert.Equal(entity.IntegrationFormFields[1].FormFieldValue, writeCasecallback.EformData[1].FieldValue); Assert.Equal(entity.IntegrationFormFields[1].FormFieldName, writeCasecallback.EformData[1].FieldName); }