Skip to content

Commit b57200c

Browse files
authored
Merge pull request #219 from microsoftgraph/bugfix/time-of-day-serialization
fixes a bug where timeofday would not be serialized properly
2 parents ab5d18d + 3925b79 commit b57200c

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/main/java/com/microsoft/graph/serializer/GsonFactory.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,6 +256,15 @@ public TimeOfDay deserialize(final JsonElement json,
256256
}
257257
};
258258

259+
final JsonSerializer<TimeOfDay> timeOfDayJsonSerializer = new JsonSerializer<TimeOfDay>() {
260+
@Override
261+
public JsonElement serialize(final TimeOfDay src,
262+
final Type typeOfSrc,
263+
final JsonSerializationContext context) {
264+
return new JsonPrimitive(src.toString());
265+
}
266+
};
267+
259268
final JsonDeserializer<Boolean> booleanJsonDeserializer = new JsonDeserializer<Boolean>() {
260269
@Override
261270
public Boolean deserialize(final JsonElement json,
@@ -344,6 +353,7 @@ public Float deserialize(final JsonElement json,
344353
.registerTypeHierarchyAdapter(BaseCollectionPage.class, collectionPageDeserializer)
345354
.registerTypeHierarchyAdapter(BaseCollectionResponse.class, collectionResponseDeserializer)
346355
.registerTypeAdapter(TimeOfDay.class, timeOfDayJsonDeserializer)
356+
.registerTypeAdapter(TimeOfDay.class, timeOfDayJsonSerializer)
347357
.registerTypeAdapterFactory(new FallbackTypeAdapterFactory(logger))
348358
.create();
349359
}

src/test/java/com/microsoft/graph/serializer/TimeOfDayTests.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package com.microsoft.graph.serializer;
22

33
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.mockito.Mockito.mock;
45

56
import org.junit.jupiter.api.Test;
67

78
import com.microsoft.graph.core.TimeOfDay;
9+
import com.microsoft.graph.logger.ILogger;
810

911
public class TimeOfDayTests {
1012

@@ -43,5 +45,11 @@ public void testTimeOfDayDeserializerWithFraction() throws Exception{
4345
assertEquals(30, time.getMinute());
4446
assertEquals(44, time.getSecond());
4547
}
46-
48+
@Test
49+
public void testTimeOfDaySerialization() throws Exception {
50+
final TimeOfDay time = new TimeOfDay(12, 30, 44);
51+
final ILogger logger = mock(ILogger.class);
52+
final ISerializer serializer = new DefaultSerializer(logger);
53+
assertEquals("\"12:30:44\"", serializer.serializeObject(time));
54+
}
4755
}

0 commit comments

Comments
 (0)