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
