Repository: johnzon Updated Branches: refs/heads/master a722ce67f -> 1900e037a
JOHNZON-96 add test for Json.createPatch Project: http://git-wip-us.apache.org/repos/asf/johnzon/repo Commit: http://git-wip-us.apache.org/repos/asf/johnzon/commit/1900e037 Tree: http://git-wip-us.apache.org/repos/asf/johnzon/tree/1900e037 Diff: http://git-wip-us.apache.org/repos/asf/johnzon/diff/1900e037 Branch: refs/heads/master Commit: 1900e037af0ebf079b79419ff1051a8bd507ec40 Parents: a722ce6 Author: Mark Struberg <[email protected]> Authored: Sun Feb 26 18:31:17 2017 +0100 Committer: Mark Struberg <[email protected]> Committed: Sun Feb 26 18:31:17 2017 +0100 ---------------------------------------------------------------------- .../apache/johnzon/core/JsonProviderImpl.java | 4 +++ .../org/apache/johnzon/core/JsonPatchTest.java | 27 ++++++++++++++++++++ 2 files changed, 31 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/johnzon/blob/1900e037/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java ---------------------------------------------------------------------- diff --git a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java index 189caad..354158a 100644 --- a/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java +++ b/johnzon-core/src/main/java/org/apache/johnzon/core/JsonProviderImpl.java @@ -360,6 +360,10 @@ public class JsonProviderImpl extends JsonProvider implements Serializable { return new JsonPointerImpl(path); } + public JsonPatch createPatch(JsonArray array) { + return createPatchBuilder(array).build(); + } + //X TODO add missing methods } http://git-wip-us.apache.org/repos/asf/johnzon/blob/1900e037/johnzon-core/src/test/java/org/apache/johnzon/core/JsonPatchTest.java ---------------------------------------------------------------------- diff --git a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonPatchTest.java b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonPatchTest.java index b572030..a54e7cd 100644 --- a/johnzon-core/src/test/java/org/apache/johnzon/core/JsonPatchTest.java +++ b/johnzon-core/src/test/java/org/apache/johnzon/core/JsonPatchTest.java @@ -18,10 +18,12 @@ */ package org.apache.johnzon.core; +import org.junit.Assert; import org.junit.Test; import javax.json.Json; import javax.json.JsonArray; +import javax.json.JsonArrayBuilder; import javax.json.JsonException; import javax.json.JsonObject; import javax.json.JsonPatch; @@ -943,6 +945,29 @@ public class JsonPatchTest { "\"father\":{\"name\":\"Gaio Modry Effect\"}}}", toJsonString(patched)); } + @Test + public void testCreatePatch() { + JsonArrayBuilder arrayBuilder = Json.createArrayBuilder(); + arrayBuilder.add(Json.createObjectBuilder() + .add("op", JsonPatch.Operation.ADD.operationName()) + .add("path", "/add") + .add("value", "someValue").build()); + arrayBuilder.add(Json.createObjectBuilder() + .add("op", JsonPatch.Operation.TEST.operationName()) + .add("path", "/test/someObject") + .add("value", "someValue").build()); + + JsonArray initialPatchData = arrayBuilder.build(); + + JsonPatch patch = Json.createPatch(initialPatchData); + + String jsonToPatch = "{\"add\":{\"a\":\"b\"},\"test\":{\"someObject\":\"someValue\"}}"; + JsonObject jsonObjectToPatch = Json.createReader(new StringReader(jsonToPatch)).readObject(); + + JsonObject patchedJsonObject = patch.apply(jsonObjectToPatch); + Assert.assertNotNull(patchedJsonObject); + } + private static String toJsonString(JsonStructure value) { @@ -951,4 +976,6 @@ public class JsonPatchTest { return writer.toString(); } + + }
