Merge pull request #9675 from Mihhail Lapushkin

* gh-9675:
  Polish "Fix JsonContentAssert type safety warnings"
  Fix JsonContentAssert type safety warnings
pull/9828/head
Andy Wilkinson 7 years ago
commit a57a74157d

@ -26,12 +26,11 @@ import com.jayway.jsonpath.JsonPath;
import org.assertj.core.api.AbstractAssert; import org.assertj.core.api.AbstractAssert;
import org.assertj.core.api.AbstractBooleanAssert; import org.assertj.core.api.AbstractBooleanAssert;
import org.assertj.core.api.AbstractCharSequenceAssert; import org.assertj.core.api.AbstractCharSequenceAssert;
import org.assertj.core.api.AbstractListAssert;
import org.assertj.core.api.AbstractMapAssert;
import org.assertj.core.api.AbstractObjectAssert; import org.assertj.core.api.AbstractObjectAssert;
import org.assertj.core.api.Assert; import org.assertj.core.api.Assert;
import org.assertj.core.api.Assertions; import org.assertj.core.api.Assertions;
import org.assertj.core.api.ObjectAssert; import org.assertj.core.api.ListAssert;
import org.assertj.core.api.MapAssert;
import org.skyscreamer.jsonassert.JSONCompare; import org.skyscreamer.jsonassert.JSONCompare;
import org.skyscreamer.jsonassert.JSONCompareMode; import org.skyscreamer.jsonassert.JSONCompareMode;
import org.skyscreamer.jsonassert.JSONCompareResult; import org.skyscreamer.jsonassert.JSONCompareResult;
@ -947,12 +946,13 @@ public class JsonContentAssert extends AbstractAssert<JsonContentAssert, CharSeq
* @param expression the {@link JsonPath} expression * @param expression the {@link JsonPath} expression
* @param args arguments to parameterize the {@code JsonPath} expression with, using * @param args arguments to parameterize the {@code JsonPath} expression with, using
* formatting specifiers defined in {@link String#format(String, Object...)} * formatting specifiers defined in {@link String#format(String, Object...)}
* @param <E> element type
* @return a new assertion object whose object under test is the extracted item * @return a new assertion object whose object under test is the extracted item
* @throws AssertionError if the path is not valid or does not result in an array * @throws AssertionError if the path is not valid or does not result in an array
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public AbstractListAssert<?, ?, Object, ObjectAssert<Object>> extractingJsonPathArrayValue( public <E> ListAssert<E> extractingJsonPathArrayValue(CharSequence expression,
CharSequence expression, Object... args) { Object... args) {
return Assertions.assertThat( return Assertions.assertThat(
extractingJsonPathValue(expression, args, List.class, "an array")); extractingJsonPathValue(expression, args, List.class, "an array"));
} }
@ -961,13 +961,15 @@ public class JsonContentAssert extends AbstractAssert<JsonContentAssert, CharSeq
* Extract the map value at the given JSON path for further object assertions. * Extract the map value at the given JSON path for further object assertions.
* @param expression the {@link JsonPath} expression * @param expression the {@link JsonPath} expression
* @param args arguments to parameterize the {@code JsonPath} expression with, using * @param args arguments to parameterize the {@code JsonPath} expression with, using
* formatting specifiers defined in {@link String#format(String, Object...)} * @param <K> key type
* @param <V> value type formatting specifiers defined in
* {@link String#format(String, Object...)}
* @return a new assertion object whose object under test is the extracted item * @return a new assertion object whose object under test is the extracted item
* @throws AssertionError if the path is not valid or does not result in a map * @throws AssertionError if the path is not valid or does not result in a map
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public AbstractMapAssert<?, ?, Object, Object> extractingJsonPathMapValue( public <K, V> MapAssert<K, V> extractingJsonPathMapValue(CharSequence expression,
CharSequence expression, Object... args) { Object... args) {
return Assertions.assertThat( return Assertions.assertThat(
extractingJsonPathValue(expression, args, Map.class, "a map")); extractingJsonPathValue(expression, args, Map.class, "a map"));
} }

@ -37,6 +37,7 @@ import org.springframework.test.util.JsonPathExpectationsHelper;
import org.springframework.util.FileCopyUtils; import org.springframework.util.FileCopyUtils;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.entry;
/** /**
* Tests for {@link JsonContentAssert}. Some tests here are based on Spring Framework * Tests for {@link JsonContentAssert}. Some tests here are based on Spring Framework
@ -1252,7 +1253,7 @@ public class JsonContentAssertTests {
@Test @Test
public void extractingJsonPathMapValue() throws Exception { public void extractingJsonPathMapValue() throws Exception {
assertThat(forJson(TYPES)).extractingJsonPathMapValue("@.colorMap") assertThat(forJson(TYPES)).extractingJsonPathMapValue("@.colorMap")
.containsEntry("red", "rojo"); .contains(entry("red", "rojo"));
} }
@Test @Test

Loading…
Cancel
Save