mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-30 15:57:11 +00:00
changes to placeholder identifier and (de)serialization
This commit is contained in:
1 parent
10f0b01576
commit
1ebed6373e
62 files changed
+812
-350
No files matched your search
@@ -10,6 +10,7 @@ Require-Bundle: org.mockito.mockito-core;bundle-version="1.9.5",
|
||||
com.sap.sailing.domain.test,
|
||||
org.hamcrest;bundle-version="1.1.0",
|
||||
org.objenesis;bundle-version="1.3.0",
|
||||
org.junit4;bundle-version="4.8.2"
|
||||
org.junit4;bundle-version="4.8.2",
|
||||
com.sap.sailing.domain.racelogtrackingadapter.testsupport;bundle-version="1.0.0"
|
||||
Import-Package: com.sap.sailing.domain.persistence.impl,
|
||||
com.sap.sailing.server.impl
|
||||
+127
@@ -0,0 +1,127 @@
|
||||
package com.sap.sailing.server.gateway.test;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.base.impl.BoatClassImpl;
|
||||
import com.sap.sailing.domain.base.impl.BoatImpl;
|
||||
import com.sap.sailing.domain.base.impl.CompetitorImpl;
|
||||
import com.sap.sailing.domain.base.impl.NationalityImpl;
|
||||
import com.sap.sailing.domain.base.impl.PersonImpl;
|
||||
import com.sap.sailing.domain.base.impl.TeamImpl;
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.common.impl.MillisecondsTimePoint;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinder;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEventAuthor;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEventFactory;
|
||||
import com.sap.sailing.domain.racelog.impl.RaceLogEventAuthorImpl;
|
||||
import com.sap.sailing.domain.racelog.tracking.DeviceCompetitorMappingEvent;
|
||||
import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelog.tracking.PlaceHolderDeviceIdentifier;
|
||||
import com.sap.sailing.domain.racelog.tracking.SmartphoneImeiIdentifier;
|
||||
import com.sap.sailing.domain.racelog.tracking.test.mock.MockEmptyServiceFinder;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.DeviceIdentifierJsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.racelog.impl.RaceLogEventDeserializer;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.CompetitorJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.DeviceIdentifierJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogEventSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.tracking.impl.PlaceHolderDeviceIdentifierJsonHandler;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.tracking.impl.SmartphoneImeiJsonHandler;
|
||||
|
||||
public class RaceLogSerializationTest {
|
||||
private JsonSerializer<RaceLogEvent> serializer;
|
||||
private JsonDeserializer<RaceLogEvent> deserializer;
|
||||
private final RaceLogEventAuthor author = new RaceLogEventAuthorImpl("test", 0);
|
||||
private static final Competitor competitor = new CompetitorImpl("a", "b", null,
|
||||
new TeamImpl("a", Collections.singletonList(new PersonImpl("a", new NationalityImpl("GER"), new Date(), "abc")), null),
|
||||
new BoatImpl("a", new BoatClassImpl("a", true), "abc"));
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
}
|
||||
|
||||
private void setup(JsonDeserializer<DeviceIdentifier> deviceDeserializer, JsonSerializer<DeviceIdentifier> deviceSerializer) {
|
||||
JsonSerializer<Competitor> cSer = CompetitorJsonSerializer.create();
|
||||
serializer = RaceLogEventSerializer.create(cSer, deviceSerializer);
|
||||
deserializer = RaceLogEventDeserializer.create(DomainFactory.INSTANCE, deviceDeserializer);
|
||||
}
|
||||
|
||||
private TimePoint t() {
|
||||
return MillisecondsTimePoint.now();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSerializationOfDeviceIdentifier() throws JsonDeserializationException {
|
||||
setup(DeviceIdentifierJsonDeserializer.create(new SmartphoneImeiJsonHandler(), SmartphoneImeiIdentifier.TYPE),
|
||||
DeviceIdentifierJsonSerializer.create(new SmartphoneImeiJsonHandler(), SmartphoneImeiIdentifier.TYPE));
|
||||
DeviceIdentifier device = new SmartphoneImeiIdentifier("abc");
|
||||
DeviceCompetitorMappingEvent event = RaceLogEventFactory.INSTANCE.createDeviceCompetitorMappingEvent(
|
||||
t(), author, device, competitor, 0, t(), t());
|
||||
|
||||
JSONObject json = serializer.serialize(event);
|
||||
|
||||
RaceLogEvent deserialized = deserializer.deserialize(json);
|
||||
|
||||
assertTrue(deserialized instanceof DeviceCompetitorMappingEvent);
|
||||
DeviceCompetitorMappingEvent deserializedMapping = (DeviceCompetitorMappingEvent) deserialized;
|
||||
assertEquals(event.getDevice(), deserializedMapping.getDevice());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSerializationOfDeviceIdentifierWithNoSerializer() throws JsonDeserializationException {
|
||||
TypeBasedServiceFinder<DeviceIdentifierJsonHandler> onlyFallback = new MockEmptyServiceFinder<>();
|
||||
onlyFallback.setFallbackService(new PlaceHolderDeviceIdentifierJsonHandler());
|
||||
|
||||
setup(new DeviceIdentifierJsonDeserializer(onlyFallback),
|
||||
DeviceIdentifierJsonSerializer.create(new SmartphoneImeiJsonHandler(), SmartphoneImeiIdentifier.TYPE));
|
||||
DeviceIdentifier device = new SmartphoneImeiIdentifier("abc");
|
||||
DeviceCompetitorMappingEvent event = RaceLogEventFactory.INSTANCE.createDeviceCompetitorMappingEvent(
|
||||
t(), author, device, competitor, 0, t(), t());
|
||||
|
||||
JSONObject json = serializer.serialize(event);
|
||||
|
||||
RaceLogEvent deserialized = deserializer.deserialize(json);
|
||||
|
||||
assertTrue(deserialized instanceof DeviceCompetitorMappingEvent);
|
||||
DeviceCompetitorMappingEvent deserializedMapping = (DeviceCompetitorMappingEvent) deserialized;
|
||||
assertTrue(deserializedMapping.getDevice() instanceof PlaceHolderDeviceIdentifier);
|
||||
assertEquals(event.getDevice().getStringRepresentation(), deserializedMapping.getDevice().getStringRepresentation());
|
||||
assertEquals(event.getDevice().getIdentifierType(), deserializedMapping.getDevice().getIdentifierType());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSerializationOfDeviceIdentifierWithNoDeserializer() throws JsonDeserializationException {
|
||||
TypeBasedServiceFinder<DeviceIdentifierJsonHandler> onlyFallback = new MockEmptyServiceFinder<>();
|
||||
onlyFallback.setFallbackService(new PlaceHolderDeviceIdentifierJsonHandler());
|
||||
|
||||
setup(DeviceIdentifierJsonDeserializer.create(new SmartphoneImeiJsonHandler(), SmartphoneImeiIdentifier.TYPE),
|
||||
new DeviceIdentifierJsonSerializer(onlyFallback));
|
||||
DeviceIdentifier device = new SmartphoneImeiIdentifier("abc");
|
||||
DeviceCompetitorMappingEvent event = RaceLogEventFactory.INSTANCE.createDeviceCompetitorMappingEvent(
|
||||
t(), author, device, competitor, 0, t(), t());
|
||||
|
||||
JSONObject json = serializer.serialize(event);
|
||||
|
||||
RaceLogEvent deserialized = deserializer.deserialize(json);
|
||||
|
||||
assertTrue(deserialized instanceof DeviceCompetitorMappingEvent);
|
||||
DeviceCompetitorMappingEvent deserializedMapping = (DeviceCompetitorMappingEvent) deserialized;
|
||||
assertTrue(deserializedMapping.getDevice() instanceof PlaceHolderDeviceIdentifier);
|
||||
assertEquals(event.getDevice().getStringRepresentation(), deserializedMapping.getDevice().getStringRepresentation());
|
||||
assertEquals(event.getDevice().getIdentifierType(), deserializedMapping.getDevice().getIdentifierType());
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user