Skip to content

Commit 19accf3

Browse files
committed
- fixes #568: a bug where time duration deserialization would fail because of quotes
1 parent 279ee37 commit 19accf3

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,7 +205,7 @@ public Duration deserialize(final JsonElement json,
205205
final Type typeOfT,
206206
final JsonDeserializationContext context) throws JsonParseException {
207207
try {
208-
return DatatypeFactory.newInstance().newDuration(json.toString());
208+
return DatatypeFactory.newInstance().newDuration(json.getAsString());
209209
} catch (Exception e) {
210210
return null;
211211
}

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import com.google.gson.JsonObject;
99
import com.google.gson.annotations.Expose;
1010
import com.google.gson.annotations.SerializedName;
11+
import com.microsoft.graph.callrecords.models.extensions.MediaStream;
1112
import com.microsoft.graph.http.MockConnection;
1213
import com.microsoft.graph.logger.DefaultLogger;
1314
import com.microsoft.graph.models.extensions.Attachment;
@@ -164,6 +165,14 @@ public void testDeserializerWhenCasingRespondedByServiceIsWrong() {
164165
assertNotNull(result.nextExpectedRanges);
165166
assertTrue(result.nextExpectedRanges.size() > 0);
166167
}
168+
@Test
169+
public void testDurationDeserialization() {
170+
final DefaultSerializer serializer = new DefaultSerializer(new DefaultLogger());
171+
final String source = "{\"streamId\": \"2101\",\"startDateTime\": null,\"endDateTime\": null,\"streamDirection\": \"calleeToCaller\",\"averageAudioDegradation\": null,\"averageJitter\": \"PT0.004S\",\"maxJitter\": \"PT0.007S\",\"averagePacketLossRate\": 0,\"maxPacketLossRate\": 0,\"averageRatioOfConcealedSamples\": 0,\"maxRatioOfConcealedSamples\": null,\"averageRoundTripTime\": \"PT0.024S\",\"maxRoundTripTime\": \"PT0.05S\",\"packetUtilization\": 471,\"averageBandwidthEstimate\": 1174971,\"wasMediaBypassed\": null,\"postForwardErrorCorrectionPacketLossRate\": null,\"averageVideoFrameLossPercentage\": null,\"averageReceivedFrameRate\": null,\"lowFrameRateRatio\": null,\"averageVideoPacketLossRate\": null,\"averageVideoFrameRate\": null,\"lowVideoProcessingCapabilityRatio\": null,\"averageAudioNetworkJitter\": \"PT0.014S\",\"maxAudioNetworkJitter\": \"PT0.022S\"}";
172+
final MediaStream result = serializer.deserializeObject(source, MediaStream.class);
173+
assertNotNull(result);
174+
assertNotNull(result.maxRoundTripTime);
175+
}
167176

168177
public static final class HasVoidMember {
169178
@SerializedName("x")

0 commit comments

Comments
 (0)