From bd5b682c7b137eacafa70999228377e0e15782a1 Mon Sep 17 00:00:00 2001 From: Patrik Helsing Date: Tue, 20 Sep 2016 21:16:37 +0200 Subject: [PATCH] Make it possible to use isJson() and hasJsonPath() matchers directly on ReadContexts. --- .../java/com/jayway/jsonpath/matchers/IsJson.java | 2 ++ .../jsonpath/matchers/JsonPathMatchersTest.java | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/json-path-assert/src/main/java/com/jayway/jsonpath/matchers/IsJson.java b/json-path-assert/src/main/java/com/jayway/jsonpath/matchers/IsJson.java index c46eb07c..4358b5f8 100644 --- a/json-path-assert/src/main/java/com/jayway/jsonpath/matchers/IsJson.java +++ b/json-path-assert/src/main/java/com/jayway/jsonpath/matchers/IsJson.java @@ -58,6 +58,8 @@ public class IsJson extends TypeSafeMatcher { return JsonPath.parse((String) object); } else if (object instanceof File) { return JsonPath.parse((File) object); + } else if (object instanceof ReadContext) { + return (ReadContext) object; } else { return JsonPath.parse(object); } diff --git a/json-path-assert/src/test/java/com/jayway/jsonpath/matchers/JsonPathMatchersTest.java b/json-path-assert/src/test/java/com/jayway/jsonpath/matchers/JsonPathMatchersTest.java index bb287fc3..038a5d68 100644 --- a/json-path-assert/src/test/java/com/jayway/jsonpath/matchers/JsonPathMatchersTest.java +++ b/json-path-assert/src/test/java/com/jayway/jsonpath/matchers/JsonPathMatchersTest.java @@ -1,6 +1,8 @@ package com.jayway.jsonpath.matchers; import com.jayway.jsonpath.Configuration; +import com.jayway.jsonpath.JsonPath; +import com.jayway.jsonpath.ReadContext; import com.jayway.jsonpath.matchers.helpers.StrictParsingConfiguration; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -209,4 +211,13 @@ public class JsonPathMatchersTest { Object json = Configuration.defaultConfiguration().jsonProvider().parse(BOOKS_JSON); assertThat(json, hasJsonPath("$.store.name", equalTo("Little Shop"))); } + + @Test + public void shouldMatchJsonPathOnReadContext() { + String test = "{\"foo\":\"bar\"}"; + ReadContext context = JsonPath.parse(test); + assertThat(context, hasJsonPath("$.foo")); + assertThat(context, hasJsonPath("$.foo", equalTo("bar"))); + assertThat(context, hasNoJsonPath("$.zoo")); + } }