Skip to content
Snippets Groups Projects
Commit 07fc15b0 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-3260 fix/cleanup FormSolutionsHeaderMapper

parent aadfc2ac
No related branches found
No related tags found
No related merge requests found
...@@ -25,6 +25,7 @@ package de.itvsh.kop.eingangsadapter.semantik.enginebased; ...@@ -25,6 +25,7 @@ package de.itvsh.kop.eingangsadapter.semantik.enginebased;
import static de.itvsh.kop.eingangsadapter.semantik.enginebased.FormSolutionsEngineBasedAdapter.*; import static de.itvsh.kop.eingangsadapter.semantik.enginebased.FormSolutionsEngineBasedAdapter.*;
import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
...@@ -38,32 +39,42 @@ public class FormSolutionsHeaderMapper implements FormSolutionsEngineBasedMapper ...@@ -38,32 +39,42 @@ public class FormSolutionsHeaderMapper implements FormSolutionsEngineBasedMapper
static final String TRANSACTION_ID = "transactionId"; static final String TRANSACTION_ID = "transactionId";
static final String FS_FORMENGINE_NAME = "FormSolutions"; static final String FORM_ENGINE_NAME = "FormSolutions";
@Override @Override
public FormData parseFormData(FormData formData) { public FormData parseFormData(FormData formData) {
var header = mapHeader(formData); return formData.toBuilder()
var cleanedData = removeTransactionId(formData); .header(buildFormHeader(formData))
.formData(removeProcessedData(formData))
.build();
}
return formData.toBuilder().header(header).formData(cleanedData).build(); FormHeader buildFormHeader(FormData formData) {
return FormHeader.builder()
.formName(getIdentifier(formData))
.formId(getIdentifier(formData))
.requestId(getRequestId(formData))
.formEngineName(FORM_ENGINE_NAME)
.build();
} }
private Map<String, Object> removeTransactionId(FormData processedData) { private String getIdentifier(FormData formData) {
Map<String, Object> cleanedData = new HashMap<>(processedData.getFormData()); return (String) getAssistant(formData).get(IDENTIFIER);
cleanedData.remove(TRANSACTION_ID);
return cleanedData;
} }
@SuppressWarnings("unchecked") private String getRequestId(FormData formData) {
FormHeader mapHeader(FormData formData) { return (String) formData.getFormData().get(TRANSACTION_ID);
var assistantMap = (Map<String, Object>) formData.getFormData().get(ASSISTANT); }
return FormHeader.builder() @SuppressWarnings("unchecked")
.formName((String) assistantMap.get(IDENTIFIER)) private Map<String, Object> getAssistant(FormData formData) {
.formId((String) assistantMap.get(IDENTIFIER)) return (Map<String, Object>) formData.getFormData().get(ASSISTANT);
.requestId((String) formData.getFormData().get(TRANSACTION_ID))
.formEngineName(FS_FORMENGINE_NAME)
.build();
} }
Map<String, Object> removeProcessedData(FormData processedData) {
var formDataMap = new HashMap<String, Object>(processedData.getFormData());
formDataMap.remove(TRANSACTION_ID);
return Collections.unmodifiableMap(formDataMap);
}
} }
...@@ -25,41 +25,99 @@ package de.itvsh.kop.eingangsadapter.semantik.enginebased; ...@@ -25,41 +25,99 @@ package de.itvsh.kop.eingangsadapter.semantik.enginebased;
import static de.itvsh.kop.eingangsadapter.semantik.enginebased.FormSolutionsHeaderTestFactory.*; import static de.itvsh.kop.eingangsadapter.semantik.enginebased.FormSolutionsHeaderTestFactory.*;
import static org.assertj.core.api.Assertions.*; import static org.assertj.core.api.Assertions.*;
import static org.mockito.Mockito.*;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.mockito.Spy;
import de.itvsh.kop.eingangsadapter.common.formdata.FormData;
import de.itvsh.kop.eingangsadapter.common.formdata.FormHeader;
class FormSolutionsHeaderMapperTest { class FormSolutionsHeaderMapperTest {
private FormSolutionsHeaderMapper mapper = new FormSolutionsHeaderMapper();
@Spy
private final FormSolutionsHeaderMapper mapper = new FormSolutionsHeaderMapper();
@DisplayName("Parse formData")
@Nested
class TestParseFormData {
private final FormData formData = FormSolutionsHeaderTestFactory.create();
@Test
void shouldCallBuildFormHeader() {
parseFormData();
verify(mapper).buildFormHeader(formData);
}
@Test
void shouldCallRemoveProcessedData() {
parseFormData();
verify(mapper).removeProcessedData(formData);
}
@Test
void shouldReturnValue() {
var result = parseFormData();
assertThat(result).usingRecursiveComparison().ignoringFields("header", "formData").isEqualTo(formData);
}
private FormData parseFormData() {
return mapper.parseFormData(formData);
}
@DisplayName("build form header")
@Nested @Nested
class TestHeaderMapping { class TestBuildFormHeader {
@Test @Test
void shouldParseFormName() { void shouldHaveFormName() {
var formData = mapper.parseFormData(FormSolutionsHeaderTestFactory.create()); var formHeader = buildFormHeader();
assertThat(formData.getHeader().getFormName()).isEqualTo(FORM_NAME); assertThat(formHeader.getFormName()).isEqualTo(FORM_NAME);
} }
@Test @Test
void shouldParseFormId() { void shouldHaveFormId() {
var formData = mapper.parseFormData(FormSolutionsHeaderTestFactory.create()); var formHeader = buildFormHeader();
assertThat(formData.getHeader().getFormId()).isEqualTo(FORM_NAME); assertThat(formHeader.getFormId()).isEqualTo(FORM_NAME);
} }
@Test @Test
void shouldParseTransactionId() { void shouldHaveTransactionId() {
var formData = mapper.parseFormData(FormSolutionsHeaderTestFactory.create()); var formHeader = buildFormHeader();
assertThat(formData.getHeader().getRequestId()).isEqualTo(REQUEST_ID); assertThat(formHeader.getRequestId()).isEqualTo(REQUEST_ID);
} }
@Test @Test
void shouldSetFormEngineName() { void shouldHaveFormEngineName() {
var formData = mapper.parseFormData(FormSolutionsHeaderTestFactory.create()); var formHeader = buildFormHeader();
assertThat(formHeader.getFormEngineName()).isEqualTo(FormSolutionsHeaderMapper.FORM_ENGINE_NAME);
}
assertThat(formData.getHeader().getFormEngineName()).isEqualTo(FormSolutionsHeaderMapper.FS_FORMENGINE_NAME); private FormHeader buildFormHeader() {
return mapper.buildFormHeader(formData);
}
}
@DisplayName("remove processed data")
@Nested
class TestRemoveProcessedData {
@Test
void shouldRemoveTransactionId() {
var cleanedFormData = mapper.removeProcessedData(formData);
assertThat(cleanedFormData).doesNotContainKey(FormSolutionsHeaderMapper.TRANSACTION_ID);
}
} }
} }
} }
\ No newline at end of file
...@@ -31,17 +31,18 @@ import java.util.Map; ...@@ -31,17 +31,18 @@ import java.util.Map;
import de.itvsh.kop.eingangsadapter.common.formdata.FormData; import de.itvsh.kop.eingangsadapter.common.formdata.FormData;
public class FormSolutionsHeaderTestFactory { public class FormSolutionsHeaderTestFactory {
public static final String FORM_NAME = "form name"; public static final String FORM_NAME = "form name";
public static final Object REQUEST_ID = "transaction id"; public static final Object REQUEST_ID = "transaction id";
public static final Map<String, Object> ASSISTANT_1 = Map.of(IDENTIFIER, FORM_NAME);
public static FormData create() { public static FormData create() {
return createBuilder().build(); return createBuilder().build();
} }
public static FormData.FormDataBuilder createBuilder() { public static FormData.FormDataBuilder createBuilder() {
return FormData.builder().formData(Map.of( return FormData.builder()
ASSISTANT, ASSISTANT_1, .formData(Map.of(
ASSISTANT, Map.of(IDENTIFIER, FORM_NAME),
TRANSACTION_ID, REQUEST_ID)); TRANSACTION_ID, REQUEST_ID));
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment