Repository: johnzon
Updated Branches:
  refs/heads/master 86f3193c1 -> e2905f9ec


JOHNZON-103 added tests for REPLACE


Project: http://git-wip-us.apache.org/repos/asf/johnzon/repo
Commit: http://git-wip-us.apache.org/repos/asf/johnzon/commit/bcd4533a
Tree: http://git-wip-us.apache.org/repos/asf/johnzon/tree/bcd4533a
Diff: http://git-wip-us.apache.org/repos/asf/johnzon/diff/bcd4533a

Branch: refs/heads/master
Commit: bcd4533aa6901155845ccdd915ea9928dd917717
Parents: 86f3193
Author: Reinhard Sandtner <[email protected]>
Authored: Tue Mar 7 19:41:55 2017 +0100
Committer: Reinhard Sandtner <[email protected]>
Committed: Tue Mar 7 19:41:55 2017 +0100

----------------------------------------------------------------------
 .../apache/johnzon/core/JsonPatchDiffTest.java  | 72 ++++++++++++++++++++
 1 file changed, 72 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/johnzon/blob/bcd4533a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonPatchDiffTest.java
----------------------------------------------------------------------
diff --git 
a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonPatchDiffTest.java 
b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonPatchDiffTest.java
index 67b2458..a85c1cf 100644
--- a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonPatchDiffTest.java
+++ b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonPatchDiffTest.java
@@ -189,6 +189,78 @@ public class JsonPatchDiffTest {
         assertEquals(0, patch.toJsonArray().size());
     }
 
+    @Test
+    public void testDiffReplaceObject() {
+
+        JsonObject source = Json.createObjectBuilder()
+                .add("a", "value")
+                .build();
+
+        JsonObject target = Json.createObjectBuilder()
+                .add("a", "replaced")
+                .build();
+
+        JsonPatch patch = Json.createDiff(source, target);
+        assertNotNull(patch);
+
+        JsonArray operations = patch.toJsonArray();
+        assertEquals(1, operations.size());
+
+        containsOperation(operations, JsonPatch.Operation.REPLACE, "/a", 
Json.createValue("replaced"));
+    }
+
+    @Test
+    public void testDiffReplaceFromNestedObject() {
+
+        JsonObject source = Json.createObjectBuilder()
+                .add("a", Json.createObjectBuilder()
+                        .add("aa", "value"))
+                .build();
+
+        JsonObject target = Json.createObjectBuilder()
+                .add("a", Json.createObjectBuilder()
+                        .add("aa", "replaced"))
+                .build();
+
+        JsonPatch patch = Json.createDiff(source, target);
+        assertNotNull(patch);
+
+        JsonArray operations = patch.toJsonArray();
+        assertEquals(1, operations.size());
+
+        containsOperation(operations, JsonPatch.Operation.REPLACE, "/a/aa", 
Json.createValue("replaced"));
+    }
+
+    //X TODO add move support -> see 
https://issues.apache.org/jira/browse/JOHNZON-105
+    @Test
+    @Ignore
+    public void testDiffMoveValue() {
+
+        JsonObject source = Json.createObjectBuilder()
+                .add("a", Json.createObjectBuilder()
+                        .add("aa", "valueToMove"))
+                .add("b", JsonValue.EMPTY_JSON_OBJECT)
+                .build();
+
+        JsonObject target = Json.createObjectBuilder()
+                .add("a", JsonValue.EMPTY_JSON_OBJECT)
+                .add("b", Json.createObjectBuilder()
+                        .add("aa", "valueToMove"))
+                .build();
+
+        JsonPatch patch = Json.createDiff(source, target);
+        assertNotNull(patch);
+
+        JsonArray operations = patch.toJsonArray();
+        assertEquals(1, operations.size());
+
+        JsonObject operation = operations.getJsonObject(0);
+        assertEquals(JsonPatch.Operation.MOVE.operationName(), 
operation.getString("op"));
+        assertEquals("/a/aa", operation.getString("from"));
+        assertEquals("/b/aa", operation.getString("to"));
+    }
+
+
 
     //X TODO arrays...
     //X TODO test add/remove JsonArray

Reply via email to