From 3925b79a683dfc45af225cb6fe7176db552fdcdd Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Tue, 1 Jun 2021 14:46:46 -0400 Subject: [PATCH] - fixes #217 a bug where timeofday would not be serialized properly --- .../com/microsoft/graph/serializer/GsonFactory.java | 10 ++++++++++ .../com/microsoft/graph/serializer/TimeOfDayTests.java | 10 +++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/microsoft/graph/serializer/GsonFactory.java b/src/main/java/com/microsoft/graph/serializer/GsonFactory.java index d4da62625..4a040cc99 100644 --- a/src/main/java/com/microsoft/graph/serializer/GsonFactory.java +++ b/src/main/java/com/microsoft/graph/serializer/GsonFactory.java @@ -256,6 +256,15 @@ public TimeOfDay deserialize(final JsonElement json, } }; + final JsonSerializer timeOfDayJsonSerializer = new JsonSerializer() { + @Override + public JsonElement serialize(final TimeOfDay src, + final Type typeOfSrc, + final JsonSerializationContext context) { + return new JsonPrimitive(src.toString()); + } + }; + final JsonDeserializer booleanJsonDeserializer = new JsonDeserializer() { @Override public Boolean deserialize(final JsonElement json, @@ -344,6 +353,7 @@ public Float deserialize(final JsonElement json, .registerTypeHierarchyAdapter(BaseCollectionPage.class, collectionPageDeserializer) .registerTypeHierarchyAdapter(BaseCollectionResponse.class, collectionResponseDeserializer) .registerTypeAdapter(TimeOfDay.class, timeOfDayJsonDeserializer) + .registerTypeAdapter(TimeOfDay.class, timeOfDayJsonSerializer) .registerTypeAdapterFactory(new FallbackTypeAdapterFactory(logger)) .create(); } diff --git a/src/test/java/com/microsoft/graph/serializer/TimeOfDayTests.java b/src/test/java/com/microsoft/graph/serializer/TimeOfDayTests.java index 8a3f6234e..288c2953c 100644 --- a/src/test/java/com/microsoft/graph/serializer/TimeOfDayTests.java +++ b/src/test/java/com/microsoft/graph/serializer/TimeOfDayTests.java @@ -1,10 +1,12 @@ package com.microsoft.graph.serializer; import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.Mockito.mock; import org.junit.jupiter.api.Test; import com.microsoft.graph.core.TimeOfDay; +import com.microsoft.graph.logger.ILogger; public class TimeOfDayTests { @@ -43,5 +45,11 @@ public void testTimeOfDayDeserializerWithFraction() throws Exception{ assertEquals(30, time.getMinute()); assertEquals(44, time.getSecond()); } - + @Test + public void testTimeOfDaySerialization() throws Exception { + final TimeOfDay time = new TimeOfDay(12, 30, 44); + final ILogger logger = mock(ILogger.class); + final ISerializer serializer = new DefaultSerializer(logger); + assertEquals("\"12:30:44\"", serializer.serializeObject(time)); + } }