|
1 | 1 | package com.microsoft.graph.serializer; |
2 | 2 |
|
3 | 3 | import static org.junit.Assert.assertEquals; |
| 4 | +import static org.junit.Assert.assertNotNull; |
| 5 | +import static org.junit.Assert.assertNull; |
4 | 6 |
|
5 | 7 | import org.junit.Before; |
6 | 8 | import org.junit.Test; |
7 | 9 |
|
| 10 | +import com.google.gson.JsonElement; |
| 11 | +import com.google.gson.JsonObject; |
| 12 | +import com.google.gson.JsonParser; |
8 | 13 | import com.google.gson.JsonPrimitive; |
9 | 14 | import com.microsoft.graph.logger.DefaultLogger; |
| 15 | +import com.microsoft.graph.models.extensions.Drive; |
10 | 16 | import com.microsoft.graph.models.extensions.Entity; |
11 | 17 | import com.microsoft.graph.models.extensions.PlannerAssignment; |
12 | 18 | import com.microsoft.graph.models.extensions.PlannerAssignments; |
13 | 19 | import com.microsoft.graph.models.extensions.PlannerTask; |
| 20 | +import com.microsoft.graph.models.extensions.PlannerTaskDetails; |
14 | 21 | import com.microsoft.graph.models.extensions.User; |
15 | 22 |
|
16 | 23 | public class AdditionalDataTests { |
@@ -75,4 +82,43 @@ public void testHashMapChildAnnotationData() { |
75 | 82 |
|
76 | 83 | assertEquals("{\"assignments\":{\"id\":{\"@odata.type\":\"#microsoft.graph.plannerAssignment\",\"orderHint\":\"!\",\"additionalData\":\"additionalValue\"}},\"@odata.type\":\"#microsoft.graph.plannerTask\"}", serializedObject); |
77 | 84 | } |
| 85 | + |
| 86 | + @Test |
| 87 | + public void testHashMapChildAdditionalData() { |
| 88 | + String input = "{\"@odata.context\":\"https://graph.microsoft.com/v1.0/$metadata#planner/tasks('8kUva3lOqkKZ-4_u5tkIC8kAFv2c')/details/$entity\",\"@odata.etag\":\"W/\\\"JzEtVGFza0RldGFpbHMgQEBAQEBAQEBAQEBAQEBAYCc=\\\"\",\"description\":null," |
| 89 | + + "\"previewType\":\"automatic\",\"id\":\"8kUva3lOqkKZ-4_u5tkIC8kAFv2c\"," |
| 90 | + + "\"references\":{\"https%3A//testurl/\":{\"@odata.type\":\"#microsoft.graph.plannerExternalReference\",\"alias\":\"test_alias\",\"type\":null,\"previewPriority\":\"8586538193086391421\",\"lastModifiedDateTime\":" |
| 91 | + + "\"2019-01-18T04:59:36.8384386Z\",\"lastModifiedBy\":{\"user\":{\"displayName\":null,\"id\":\"ec786dee-da15-4896-8e73-57141477bae7\"}}}},\"checklist\":{\"1234\":{\"@odata.type\":\"#microsoft.graph.plannerChecklistItem\"," |
| 92 | + + "\"isChecked\":false,\"title\":\"Test title\",\"orderHint\":\"8586538194441079237\",\"lastModifiedDateTime\":\"2019-01-18T04:57:21.369657Z\",\"lastModifiedBy\":{\"user\":{\"displayName\":null,\"id\":\"ec786dee-da15-4896-8e73-57141477bae7\"}}}," |
| 93 | + + "\"66442\":{\"@odata.type\":\"#microsoft.graph.plannerChecklistItem\",\"isChecked\":false,\"title\":\"checklist item 3\",\"orderHint\":\"8586539618F3\",\"lastModifiedDateTime\":\"2019-01-16T13:24:11.4732273Z\",\"lastModifiedBy\":" |
| 94 | + + "{\"user\":{\"displayName\":null,\"id\":\"ec786dee-da15-4896-8e73-57141477bae7\"}}},\"83642\":{\"@odata.type\":\"#microsoft.graph.plannerChecklistItem\",\"isChecked\":false,\"title\":\"checklist item 1\",\"orderHint\":\"8586539619030374725P_\"," |
| 95 | + + "\"lastModifiedDateTime\":\"2019-01-16T13:24:02.4557738Z\",\"lastModifiedBy\":{\"user\":{\"displayName\":null,\"id\":\"ec786dee-da15-4896-8e73-57141477bae7\"}}},\"84724\":{\"@odata.type\":\"#microsoft.graph.plannerChecklistItem\"," |
| 96 | + + "\"isChecked\":false,\"title\":\"checklist item 2\",\"orderHint\":\"8586539618YD\",\"lastModifiedDateTime\":\"2019-01-16T13:24:07.113845Z\",\"lastModifiedBy\":{\"user\":{\"displayName\":null,\"id\":" |
| 97 | + + "\"ec786dee-da15-4896-8e73-57141477bae7\"}}}}}" ; |
| 98 | + |
| 99 | + PlannerTaskDetails deserializedObject = serializer.deserializeObject(input, PlannerTaskDetails.class); |
| 100 | + |
| 101 | + assertNull(deserializedObject.additionalDataManager().get("1234")); |
| 102 | + assertNull(deserializedObject.additionalDataManager().get("66442")); |
| 103 | + assertNull(deserializedObject.additionalDataManager().get("83642")); |
| 104 | + assertNull(deserializedObject.additionalDataManager().get("84724")); |
| 105 | + assertNull(deserializedObject.additionalDataManager().get("https%3A//testurl/")); |
| 106 | + |
| 107 | + String serialized = serializer.serializeObject(deserializedObject); |
| 108 | + |
| 109 | + JsonParser parser = new JsonParser(); |
| 110 | + JsonObject jsonObject = parser.parse(serialized).getAsJsonObject(); |
| 111 | + assertNotNull(jsonObject.get("checklist").getAsJsonObject().get("1234")); |
| 112 | + assertNull(jsonObject.get("checklist").getAsJsonObject().get("1234").getAsJsonObject().get("1234")); |
| 113 | + assertNull(jsonObject.get("checklist").getAsJsonObject().get("1234").getAsJsonObject().get("66442")); |
| 114 | + } |
| 115 | + |
| 116 | + @Test |
| 117 | + public void testChildAdditionalDataDeserialization() { |
| 118 | + String source = "{\"@odata.context\":\"https://graph.microsoft.com/v1.0/$metadata#drives/$entity\",\"id\":\"8bf6ae90006c4a4c\",\"driveType\":\"personal\",\"owner\":{\"user\":{\"displayName\":\"Peter\",\"id\":\"8bf6ae90006c4a4c\",\"email\":\"[email protected]\"}},\"quota\":{\"deleted\":1485718314,\"remaining\":983887466461,\"state\":\"normal\",\"total\":1142461300736,\"used\":158573834275}}"; |
| 119 | + Drive result = serializer.deserializeObject(source, Drive.class); |
| 120 | + JsonElement email = result.owner.user.additionalDataManager().get("email"); |
| 121 | + |
| 122 | + assertEquals( "\"[email protected]\"", email. toString()); |
| 123 | + } |
78 | 124 | } |
0 commit comments