T5: CanonicalWriter/Reader round-trip test [checkpoint]
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
package com.developx.szpitale.load;
|
||||
|
||||
import com.developx.szpitale.model.*;
|
||||
import com.developx.szpitale.model.enums.*;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.io.TempDir;
|
||||
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.List;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
class CanonicalRoundTripTest {
|
||||
|
||||
@TempDir
|
||||
Path tempDir;
|
||||
|
||||
@Test
|
||||
void write_thenRead_yieldsEqualDataset() throws Exception {
|
||||
Hospital hospital = new Hospital(
|
||||
"hosp:podlaskie:usk-bialystok",
|
||||
"Uniwersytecki Szpital Kliniczny w Białymstoku",
|
||||
"USK",
|
||||
"Białystok",
|
||||
"podlaskie",
|
||||
LegalForm.SPZOZ,
|
||||
"Uniwersytet Medyczny",
|
||||
SupervisoryBodyType.RADA_SPOLECZNA,
|
||||
null, null,
|
||||
"https://uskwb.pl",
|
||||
List.of("https://uskwb.pl/dyrekcja")
|
||||
);
|
||||
|
||||
Person person = new Person(
|
||||
"person:jan-kowalski",
|
||||
"Jan Kowalski",
|
||||
"Dyrektor Naczelny",
|
||||
List.of("prof."),
|
||||
List.of("https://uskwb.pl/dyrekcja")
|
||||
);
|
||||
|
||||
Affiliation affiliation = new Affiliation(
|
||||
"person:jan-kowalski",
|
||||
AffiliationType.PARTIA,
|
||||
"Koalicja Obywatelska",
|
||||
ConfidenceLevel.POTWIERDZONA,
|
||||
"PO",
|
||||
List.of("https://uskwb.pl/dyrekcja")
|
||||
);
|
||||
|
||||
Role role = new Role(
|
||||
"hosp:podlaskie:usk-bialystok",
|
||||
"person:jan-kowalski",
|
||||
RoleType.DYREKTOR,
|
||||
"Dyrektor Naczelny",
|
||||
OrganType.DYREKCJA,
|
||||
RoleStatus.AKTUALNY,
|
||||
null, null,
|
||||
null,
|
||||
List.of("https://uskwb.pl/dyrekcja")
|
||||
);
|
||||
|
||||
CanonicalDataset original = new CanonicalDataset(
|
||||
"1.0", "podlaskie",
|
||||
java.time.LocalDateTime.now(),
|
||||
List.of(hospital),
|
||||
List.of(person),
|
||||
List.of(affiliation),
|
||||
List.of(role),
|
||||
List.of()
|
||||
);
|
||||
|
||||
Path canonicalDir = tempDir.resolve("canonical");
|
||||
Files.createDirectories(canonicalDir);
|
||||
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
mapper.registerModule(new JavaTimeModule());
|
||||
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
||||
mapper.writerWithDefaultPrettyPrinter().writeValue(
|
||||
canonicalDir.resolve("podlaskie.json").toFile(), original
|
||||
);
|
||||
|
||||
CanonicalReader reader = new CanonicalReader();
|
||||
CanonicalDataset readBack = reader.readSingle(tempDir, "podlaskie");
|
||||
|
||||
assertNotNull(readBack);
|
||||
assertEquals(original.schemaVersion(), readBack.schemaVersion());
|
||||
assertEquals(original.voivodeship(), readBack.voivodeship());
|
||||
assertEquals(1, readBack.hospitals().size());
|
||||
assertEquals(hospital.id(), readBack.hospitals().get(0).id());
|
||||
assertEquals(hospital.name(), readBack.hospitals().get(0).name());
|
||||
assertEquals(1, readBack.people().size());
|
||||
assertEquals(person.id(), readBack.people().get(0).id());
|
||||
assertEquals(person.fullName(), readBack.people().get(0).fullName());
|
||||
assertEquals(1, readBack.affiliations().size());
|
||||
assertEquals(affiliation.name(), readBack.affiliations().get(0).name());
|
||||
assertEquals(1, readBack.roles().size());
|
||||
assertEquals(role.hospitalId(), readBack.roles().get(0).hospitalId());
|
||||
assertEquals(role.roleType(), readBack.roles().get(0).roleType());
|
||||
}
|
||||
}
|
||||
+1
@@ -2,3 +2,4 @@ com/developx/szpitale/ingest/normalize/NameNormalizerTest.class
|
||||
com/developx/szpitale/ingest/normalize/PartyNormalizerTest.class
|
||||
com/developx/szpitale/ingest/source/MarkdownRegistrySourceTest.class
|
||||
com/developx/szpitale/ingest/normalize/DeduplicatorTest.class
|
||||
com/developx/szpitale/load/CanonicalRoundTripTest.class
|
||||
|
||||
+1
@@ -2,3 +2,4 @@
|
||||
/home/kruszewskia/Workspace/Private/Szpitale-graph/szpitale-graph/src/test/java/com/developx/szpitale/ingest/normalize/NameNormalizerTest.java
|
||||
/home/kruszewskia/Workspace/Private/Szpitale-graph/szpitale-graph/src/test/java/com/developx/szpitale/ingest/normalize/PartyNormalizerTest.java
|
||||
/home/kruszewskia/Workspace/Private/Szpitale-graph/szpitale-graph/src/test/java/com/developx/szpitale/ingest/source/MarkdownRegistrySourceTest.java
|
||||
/home/kruszewskia/Workspace/Private/Szpitale-graph/szpitale-graph/src/test/java/com/developx/szpitale/load/CanonicalRoundTripTest.java
|
||||
|
||||
+5
-5
File diff suppressed because one or more lines are too long
+17
-17
File diff suppressed because one or more lines are too long
+14
-14
File diff suppressed because one or more lines are too long
+7
-7
File diff suppressed because one or more lines are too long
+59
File diff suppressed because one or more lines are too long
+1
-1
@@ -1,4 +1,4 @@
|
||||
-------------------------------------------------------------------------------
|
||||
Test set: com.developx.szpitale.ingest.normalize.DeduplicatorTest
|
||||
-------------------------------------------------------------------------------
|
||||
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.006 s -- in com.developx.szpitale.ingest.normalize.DeduplicatorTest
|
||||
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.009 s -- in com.developx.szpitale.ingest.normalize.DeduplicatorTest
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
-------------------------------------------------------------------------------
|
||||
Test set: com.developx.szpitale.ingest.normalize.NameNormalizerTest
|
||||
-------------------------------------------------------------------------------
|
||||
Tests run: 25, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.081 s -- in com.developx.szpitale.ingest.normalize.NameNormalizerTest
|
||||
Tests run: 25, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.149 s -- in com.developx.szpitale.ingest.normalize.NameNormalizerTest
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
-------------------------------------------------------------------------------
|
||||
Test set: com.developx.szpitale.ingest.normalize.PartyNormalizerTest
|
||||
-------------------------------------------------------------------------------
|
||||
Tests run: 15, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.010 s -- in com.developx.szpitale.ingest.normalize.PartyNormalizerTest
|
||||
Tests run: 15, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.038 s -- in com.developx.szpitale.ingest.normalize.PartyNormalizerTest
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
-------------------------------------------------------------------------------
|
||||
Test set: com.developx.szpitale.ingest.source.MarkdownRegistrySourceTest
|
||||
-------------------------------------------------------------------------------
|
||||
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.096 s -- in com.developx.szpitale.ingest.source.MarkdownRegistrySourceTest
|
||||
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.198 s -- in com.developx.szpitale.ingest.source.MarkdownRegistrySourceTest
|
||||
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
-------------------------------------------------------------------------------
|
||||
Test set: com.developx.szpitale.load.CanonicalRoundTripTest
|
||||
-------------------------------------------------------------------------------
|
||||
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.324 s -- in com.developx.szpitale.load.CanonicalRoundTripTest
|
||||
BIN
Binary file not shown.
Reference in New Issue
Block a user