Skip to content
Snippets Groups Projects
Commit d4cc8337 authored by OZG-Cloud Team's avatar OZG-Cloud Team
Browse files

OZG-3260 fix/cleanup FormSolutionsHeaderMapper

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