Merge pull request #161 from leadpony/fix_jsonpointer

Add missing JsonPointer#toString in api/impl/tests
diff --git a/api/src/main/java/javax/json/JsonPointer.java b/api/src/main/java/javax/json/JsonPointer.java
index c7e3002..0d07c41 100644
--- a/api/src/main/java/javax/json/JsonPointer.java
+++ b/api/src/main/java/javax/json/JsonPointer.java
@@ -113,4 +113,13 @@
      * @throws JsonException if the referenced value does not exist
      */
     JsonValue getValue(JsonStructure target);
+
+    /**
+     * Returns the string representation of this JSON Pointer.
+     * The value to be returned is an empty string or a sequence of '{@code /}' prefixed tokens.
+     *
+     * @return the valid escaped JSON Pointer string.
+     */
+    @Override
+    String toString();
 }
diff --git a/impl/src/main/java/org/glassfish/json/JsonPointerImpl.java b/impl/src/main/java/org/glassfish/json/JsonPointerImpl.java
index 26b5697..dea5b0f 100644
--- a/impl/src/main/java/org/glassfish/json/JsonPointerImpl.java
+++ b/impl/src/main/java/org/glassfish/json/JsonPointerImpl.java
@@ -197,6 +197,14 @@
     }
 
     /**
+     * {@inheritDoc}
+     */
+    @Override
+    public String toString() {
+        return jsonPointer;
+    }
+
+    /**
      * Executes the operation
      * @param op a {code BiFunction} used to specify the operation to execute on
      *    the leaf node of the Json Pointer
diff --git a/tests/src/test/java/org/glassfish/json/tests/JsonPointerToStringTest.java b/tests/src/test/java/org/glassfish/json/tests/JsonPointerToStringTest.java
new file mode 100644
index 0000000..b4f08e6
--- /dev/null
+++ b/tests/src/test/java/org/glassfish/json/tests/JsonPointerToStringTest.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (c) 2015, 2017 Oracle and/or its affiliates. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0, which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the
+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+ * version 2 with the GNU Classpath Exception, which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ */
+
+package org.glassfish.json.tests;
+
+import static org.junit.Assert.assertThat;
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.CoreMatchers.is;
+
+import java.util.Arrays;
+
+import javax.json.Json;
+import javax.json.JsonPointer;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.Parameterized;
+import org.junit.runners.Parameterized.Parameters;
+
+/**
+ * JSON pointer toString tests.
+ *
+ * @author leadpony
+ */
+@RunWith(Parameterized.class)
+public class JsonPointerToStringTest {
+
+    @Parameters(name = "{index}: {0}")
+    public static Iterable<Object> data() {
+        return Arrays.asList("", "/", "/one/two/3", "/a~1b", "/m~0n");
+    }
+
+    private final String expected;
+
+    public JsonPointerToStringTest(String expected) {
+        this.expected = expected;
+    }
+
+    @Test
+    public void shouldReturnOriginalEscapedString() {
+        JsonPointer pointer = Json.createPointer(expected);
+        assertThat(pointer.toString(), is(equalTo(expected)));
+    }
+}