mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-09-21 21:25:38 +00:00
fixed serialization/de-serialization of RaceLogORCLegDataEvent
Change-Id: I381d90a4b1ae1c66408ff68efad72957da68d4bd
This commit is contained in:
+8
-3
@@ -30,6 +30,7 @@ import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogFinishPo
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogFixedMarkPassingEventSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogFlagEventSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogGateLineOpeningTimeEventSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogORCLegDataEventSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogPassChangeEventSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogPathfinderEventSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogProtestStartTimeEventSerializer;
|
||||
@@ -87,7 +88,8 @@ public class RaceLogEventDeserializer implements JsonDeserializer<RaceLogEvent>
|
||||
new RaceLogStartOfTrackingEventDeserializer(competitorDeserializer),
|
||||
new RaceLogUseCompetitorsFromRaceLogEventDeserializer(competitorDeserializer),
|
||||
new RaceLogEndOfTrackingEventDeserializer(competitorDeserializer),
|
||||
new RaceLogTagEventDeserializer(competitorDeserializer));
|
||||
new RaceLogTagEventDeserializer(competitorDeserializer),
|
||||
new RaceLogORCLegDataEventDeserializer(competitorDeserializer));
|
||||
}
|
||||
|
||||
protected final JsonDeserializer<RaceLogEvent> flagEventDeserializer;
|
||||
@@ -114,6 +116,7 @@ public class RaceLogEventDeserializer implements JsonDeserializer<RaceLogEvent>
|
||||
protected final JsonDeserializer<RaceLogEvent> useCompetitorsFromRaceLogDeserializer;
|
||||
protected final JsonDeserializer<RaceLogEvent> endOfTrackingDeserializer;
|
||||
protected final JsonDeserializer<RaceLogEvent> tagEventDeserializer;
|
||||
protected final JsonDeserializer<RaceLogEvent> orcLegDataEventDeserializer;
|
||||
|
||||
public RaceLogEventDeserializer(JsonDeserializer<RaceLogEvent> flagEventDeserializer,
|
||||
JsonDeserializer<RaceLogEvent> startTimeEventDeserializer,
|
||||
@@ -138,7 +141,7 @@ public class RaceLogEventDeserializer implements JsonDeserializer<RaceLogEvent>
|
||||
JsonDeserializer<RaceLogEvent> startOfTrackingEventDeserializer,
|
||||
JsonDeserializer<RaceLogEvent> useCompetitorsFromRaceLogDeserializer,
|
||||
JsonDeserializer<RaceLogEvent> endOfTrackingEventDeserializer,
|
||||
JsonDeserializer<RaceLogEvent> tagEventDeserializer) {
|
||||
JsonDeserializer<RaceLogEvent> tagEventDeserializer, JsonDeserializer<RaceLogEvent> orcLegDataEventDeserializer) {
|
||||
this.flagEventDeserializer = flagEventDeserializer;
|
||||
this.startTimeEventDeserializer = startTimeEventDeserializer;
|
||||
this.dependentStartTimeEventDeserializer = dependentStartTimeEventDeserializer;
|
||||
@@ -163,6 +166,7 @@ public class RaceLogEventDeserializer implements JsonDeserializer<RaceLogEvent>
|
||||
this.endOfTrackingDeserializer = endOfTrackingEventDeserializer;
|
||||
this.useCompetitorsFromRaceLogDeserializer = useCompetitorsFromRaceLogDeserializer;
|
||||
this.tagEventDeserializer = tagEventDeserializer;
|
||||
this.orcLegDataEventDeserializer = orcLegDataEventDeserializer;
|
||||
}
|
||||
|
||||
protected JsonDeserializer<RaceLogEvent> getDeserializer(JSONObject object) throws JsonDeserializationException {
|
||||
@@ -216,8 +220,9 @@ public class RaceLogEventDeserializer implements JsonDeserializer<RaceLogEvent>
|
||||
return useCompetitorsFromRaceLogDeserializer;
|
||||
} else if (type.equals(RaceLogTagEventSerializer.VALUE_CLASS)){
|
||||
return tagEventDeserializer;
|
||||
} else if (type.equals(RaceLogORCLegDataEventSerializer.VALUE_CLASS)){
|
||||
return orcLegDataEventDeserializer;
|
||||
}
|
||||
|
||||
throw new JsonDeserializationException(String.format("There is no deserializer defined for event type %s.",
|
||||
type));
|
||||
}
|
||||
|
||||
+3
-3
@@ -35,9 +35,9 @@ public class RaceLogORCLegDataEventDeserializer extends BaseRaceLogEventDeserial
|
||||
protected RaceLogEvent deserialize(JSONObject object, Serializable id, TimePoint createdAt,
|
||||
AbstractLogEventAuthor author, TimePoint timePoint, int passId, List<Competitor> competitors)
|
||||
throws JsonDeserializationException {
|
||||
int legNr = (int) object.get(RaceLogORCLegDataEventSerializer.ORC_LEG_LENGTH);
|
||||
Bearing twa = new DegreeBearingImpl((double) object.get(RaceLogORCLegDataEventSerializer.ORC_LEG_TWA));
|
||||
Distance length = new NauticalMileDistance((double) object.get(RaceLogORCLegDataEventSerializer.ORC_LEG_LENGTH));
|
||||
int legNr = ((Number) object.get(RaceLogORCLegDataEventSerializer.ORC_LEG_NR)).intValue();
|
||||
Bearing twa = new DegreeBearingImpl(((Number) object.get(RaceLogORCLegDataEventSerializer.ORC_LEG_TWA)).doubleValue());
|
||||
Distance length = new NauticalMileDistance(((Number) object.get(RaceLogORCLegDataEventSerializer.ORC_LEG_LENGTH)).doubleValue());
|
||||
ORCPerformanceCurveLegTypes type = ORCPerformanceCurveLegTypes.valueOf((String) object.get(RaceLogORCLegDataEventSerializer.ORC_LEG_TYPE));
|
||||
return new RaceLogORCLegDataEventImpl(createdAt, timePoint, author, id, passId, legNr, twa, length, type);
|
||||
}
|
||||
|
||||
+2
-2
@@ -17,8 +17,8 @@ public class RaceLogORCLegDataEventSerializer extends BaseRaceLogEventSerializer
|
||||
|
||||
public static final String VALUE_CLASS = RaceLogORCLegDataEvent.class.getSimpleName();
|
||||
public static final String ORC_LEG_NR = "legNr";
|
||||
public static final String ORC_LEG_TWA = "twa";
|
||||
public static final String ORC_LEG_LENGTH = "length";
|
||||
public static final String ORC_LEG_TWA = "twaDeg";
|
||||
public static final String ORC_LEG_LENGTH = "lengthNauticalMiles";
|
||||
public static final String ORC_LEG_TYPE = "type";
|
||||
|
||||
public RaceLogORCLegDataEventSerializer(JsonSerializer<Competitor> competitorSerializer) {
|
||||
|
||||
+29
-3
@@ -1,6 +1,7 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.test.racelog;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
@@ -9,6 +10,7 @@ import org.mockito.Mockito;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
|
||||
import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl;
|
||||
import com.sap.sailing.domain.abstractlog.orc.impl.RaceLogORCLegDataEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.impl.RaceLogEndOfTrackingEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.race.impl.RaceLogFlagEventImpl;
|
||||
@@ -16,17 +18,21 @@ import com.sap.sailing.domain.abstractlog.race.impl.RaceLogTagEventImpl;
|
||||
import com.sap.sailing.domain.abstractlog.race.tracking.impl.RaceLogUseCompetitorsFromRaceLogEventImpl;
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.base.impl.DynamicCompetitor;
|
||||
import com.sap.sailing.domain.common.impl.MeterDistance;
|
||||
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveLegTypes;
|
||||
import com.sap.sailing.domain.common.racelog.Flags;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.CompetitorJsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.racelog.impl.RaceLogEndOfTrackingEventDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.racelog.impl.RaceLogEventDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.racelog.impl.RaceLogFlagEventDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.racelog.impl.RaceLogORCLegDataEventDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.racelog.impl.RaceLogTagEventDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.racelog.impl.RaceLogUseCompetitorsFromRaceLogEventDeserializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.CompetitorJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogEventSerializer;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.impl.DegreeBearingImpl;
|
||||
|
||||
public class RaceLogEventDeserializerTest {
|
||||
|
||||
@@ -38,13 +44,11 @@ public class RaceLogEventDeserializerTest {
|
||||
protected RaceLogTagEventDeserializer mockitoRaceLogTagEventDeserializer = Mockito.spy(new RaceLogTagEventDeserializer(competitorDeserializer));
|
||||
|
||||
public class InnerRaceLogEventDeserializer extends RaceLogEventDeserializer{
|
||||
|
||||
|
||||
public InnerRaceLogEventDeserializer() {
|
||||
super(mockitoRaceLogFlagEventDeserializer, null, null, null, null, null, null, null, null, null, null, null,
|
||||
null, null, null, null, null, null, null, null, null,
|
||||
mockitoRaceLogUseCompetitorsFromRaceLogEventDeserializer,
|
||||
mockitoRaceLogEndOfTrackingEventDeserializer,mockitoRaceLogTagEventDeserializer);
|
||||
mockitoRaceLogEndOfTrackingEventDeserializer, mockitoRaceLogTagEventDeserializer, new RaceLogORCLegDataEventDeserializer(competitorDeserializer));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,6 +85,28 @@ public class RaceLogEventDeserializerTest {
|
||||
assertEquals(originalEvent.getCreatedAt(), newEvent.getCreatedAt());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSerializationAndDeserializationForRaceLogORCLegDataEvent() throws Exception{
|
||||
final RaceLogORCLegDataEventImpl originalEvent = new RaceLogORCLegDataEventImpl(timePoint, timePoint, author,
|
||||
UUID.randomUUID(), 0, /* leg number */ 2, new DegreeBearingImpl(123), new MeterDistance(2345),
|
||||
ORCPerformanceCurveLegTypes.TWA);
|
||||
RaceLogEventSerializer serializer = (RaceLogEventSerializer) RaceLogEventSerializer.create(CompetitorJsonSerializer.create());
|
||||
JSONObject object = serializer.serialize(originalEvent);
|
||||
RaceLogEvent raceLogEvent = deserializer.deserialize(object);
|
||||
RaceLogORCLegDataEventImpl newEvent = (RaceLogORCLegDataEventImpl) raceLogEvent;
|
||||
//assert raceLogEvent has correct values
|
||||
assertEquals(originalEvent.getTimePoint().toString(), newEvent.getTimePoint().toString());
|
||||
assertEquals(originalEvent.getAuthor().toString(), newEvent.getAuthor().toString());
|
||||
assertEquals(originalEvent.getPassId(), newEvent.getPassId());
|
||||
assertEquals(originalEvent.getClass(), newEvent.getClass());
|
||||
assertEquals(originalEvent.getId(), newEvent.getId());
|
||||
assertEquals(originalEvent.getShortInfo(), newEvent.getShortInfo());
|
||||
assertEquals(originalEvent.getLegNr(), newEvent.getLegNr());
|
||||
assertEquals(originalEvent.getTwa(), newEvent.getTwa());
|
||||
assertEquals(originalEvent.getType(), newEvent.getType());
|
||||
assertEquals(originalEvent.getLength(), newEvent.getLength());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSerializationAndDeserializationForRaceLogEndOfTrackingEvent() throws Exception{
|
||||
RaceLogEndOfTrackingEventImpl originalEvent = new RaceLogEndOfTrackingEventImpl(timePoint, timePoint2, author, UUID.randomUUID(), 3);
|
||||
|
||||
Reference in New Issue
Block a user