1
0
mirror of https://github.com/pcvolkmer/mv64e-onkostar-data.git synced 2025-09-14 00:12:52 +00:00

refactor: use custum type to wrap raw map

This commit is contained in:
2025-06-21 10:38:57 +02:00
parent 6d1ca42d12
commit a70a96980a
13 changed files with 202 additions and 87 deletions

View File

@@ -0,0 +1,46 @@
package dev.pcvolkmer.onco.datamapper;
import org.junit.jupiter.api.Test;
import java.time.Instant;
import java.sql.Date;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
class ResultSetTest {
@Test
void shouldReturnStringValues() {
var data = getTestData();
assertThat(data.getString("null")).isNull();
assertThat(data.getString("string")).isEqualTo("TestString");
assertThat(data.getString("int")).isEqualTo("42");
}
@Test
void shouldReturnIntegerValues() {
var data = getTestData();
assertThat(data.getInteger("int")).isEqualTo(42);
}
@Test
void shouldReturnDateValues() {
var data = getTestData();
assertThat(data.getDate("date")).isEqualTo(new Date(Date.from(Instant.parse("2025-06-21T12:00:00Z")).getTime()));
}
static ResultSet getTestData() {
return ResultSet.from(
Map.of(
"string", "TestString",
"int", 42,
"date", new Date(Date.from(Instant.parse("2025-06-21T12:00:00Z")).getTime())
)
);
}
}

View File

@@ -1,6 +1,7 @@
package dev.pcvolkmer.onco.datamapper.mapper;
import dev.pcvolkmer.mv64e.mtb.MtbDiagnosis;
import dev.pcvolkmer.onco.datamapper.ResultSet;
import dev.pcvolkmer.onco.datamapper.datacatalogues.KpaCatalogue;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -35,11 +36,11 @@ class KpaDiagnosisDataMapperTest {
}
@Test
void shouldCreateDiagnosis(@Mock Map<String, Object> resultSet) {
void shouldCreateDiagnosis(@Mock ResultSet resultSet) {
doAnswer(invocationOnMock -> {
var columnName = invocationOnMock.getArgument(0, String.class);
return testData().get(columnName);
}).when(resultSet).get(anyString());
}).when(resultSet).getString(anyString());
doAnswer(invocationOnMock -> resultSet)
.when(kpaCatalogue)

View File

@@ -1,6 +1,7 @@
package dev.pcvolkmer.onco.datamapper.mapper;
import dev.pcvolkmer.mv64e.mtb.*;
import dev.pcvolkmer.onco.datamapper.ResultSet;
import dev.pcvolkmer.onco.datamapper.datacatalogues.KpaCatalogue;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -37,7 +38,7 @@ class KpaPatientDataMapperTest {
}
@Test
void shouldCreatePatientAlive(@Mock Map<String, Object> resultSet) {
void shouldCreatePatientAlive(@Mock ResultSet resultSet) {
var testData = Map.of(
"patient_id", "1",
"geschlecht", "m",
@@ -49,7 +50,12 @@ class KpaPatientDataMapperTest {
doAnswer(invocationOnMock -> {
var columnName = invocationOnMock.getArgument(0, String.class);
return testData.get(columnName);
}).when(resultSet).get(anyString());
}).when(resultSet).getString(anyString());
doAnswer(invocationOnMock -> {
var columnName = invocationOnMock.getArgument(0, String.class);
return testData.get(columnName);
}).when(resultSet).getDate(anyString());
doAnswer(invocationOnMock -> resultSet)
.when(kpaCatalogue)
@@ -67,7 +73,7 @@ class KpaPatientDataMapperTest {
}
@Test
void shouldCreatePatientDead(@Mock Map<String, Object> resultSet) {
void shouldCreatePatientDead(@Mock ResultSet resultSet) {
var testData = Map.of(
"patient_id", "1",
"geschlecht", "w",
@@ -78,7 +84,12 @@ class KpaPatientDataMapperTest {
doAnswer(invocationOnMock -> {
var columnName = invocationOnMock.getArgument(0, String.class);
return testData.get(columnName);
}).when(resultSet).get(anyString());
}).when(resultSet).getString(anyString());
doAnswer(invocationOnMock -> {
var columnName = invocationOnMock.getArgument(0, String.class);
return testData.get(columnName);
}).when(resultSet).getDate(anyString());
doAnswer(invocationOnMock -> resultSet)
.when(kpaCatalogue)

View File

@@ -3,6 +3,7 @@ package dev.pcvolkmer.onco.datamapper.mapper;
import dev.pcvolkmer.mv64e.mtb.Address;
import dev.pcvolkmer.mv64e.mtb.GenderCodingCode;
import dev.pcvolkmer.mv64e.mtb.Patient;
import dev.pcvolkmer.onco.datamapper.ResultSet;
import dev.pcvolkmer.onco.datamapper.datacatalogues.PatientCatalogue;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -39,7 +40,7 @@ class PatientDataMapperTest {
}
@Test
void shouldCreatePatientAlive(@Mock Map<String, Object> resultSet) {
void shouldCreatePatientAlive(@Mock ResultSet resultSet) {
var testData = Map.of(
"id", "1",
"geschlecht", "M",
@@ -51,7 +52,12 @@ class PatientDataMapperTest {
doAnswer(invocationOnMock -> {
var columnName = invocationOnMock.getArgument(0, String.class);
return testData.get(columnName);
}).when(resultSet).get(anyString());
}).when(resultSet).getString(anyString());
doAnswer(invocationOnMock -> {
var columnName = invocationOnMock.getArgument(0, String.class);
return testData.get(columnName);
}).when(resultSet).getDate(anyString());
doAnswer(invocationOnMock -> resultSet)
.when(patientCatalogue)
@@ -67,7 +73,7 @@ class PatientDataMapperTest {
}
@Test
void shouldCreatePatientDead(@Mock Map<String, Object> resultSet) {
void shouldCreatePatientDead(@Mock ResultSet resultSet) {
var testData = Map.of(
"id", "1",
"geschlecht", "M",
@@ -78,7 +84,12 @@ class PatientDataMapperTest {
doAnswer(invocationOnMock -> {
var columnName = invocationOnMock.getArgument(0, String.class);
return testData.get(columnName);
}).when(resultSet).get(anyString());
}).when(resultSet).getString(anyString());
doAnswer(invocationOnMock -> {
var columnName = invocationOnMock.getArgument(0, String.class);
return testData.get(columnName);
}).when(resultSet).getDate(anyString());
doAnswer(invocationOnMock -> resultSet)
.when(patientCatalogue)