From 9b2b485444c6f223c7ca7df6bc5fda893146eb88 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Wed, 31 Jan 2024 17:12:12 +0100 Subject: [PATCH] Disabled test for auto-growing nested map values See gh-32154 --- .../beans/BeanWrapperAutoGrowingTests.java | 76 +++++++++++++++---- 1 file changed, 63 insertions(+), 13 deletions(-) diff --git a/spring-beans/src/test/java/org/springframework/beans/BeanWrapperAutoGrowingTests.java b/spring-beans/src/test/java/org/springframework/beans/BeanWrapperAutoGrowingTests.java index 482c8be5d4..8a92ab5c3a 100644 --- a/spring-beans/src/test/java/org/springframework/beans/BeanWrapperAutoGrowingTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/BeanWrapperAutoGrowingTests.java @@ -20,6 +20,7 @@ import java.util.List; import java.util.Map; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; @@ -149,16 +150,23 @@ class BeanWrapperAutoGrowingTests { @Test void getPropertyValueAutoGrowListFailsAgainstLimit() { wrapper.setAutoGrowCollectionLimit(2); - assertThatExceptionOfType(InvalidPropertyException.class).isThrownBy(() -> - wrapper.getPropertyValue("list[4]")) - .withRootCauseInstanceOf(IndexOutOfBoundsException.class); + assertThatExceptionOfType(InvalidPropertyException.class) + .isThrownBy(() -> wrapper.getPropertyValue("list[4]")) + .withRootCauseInstanceOf(IndexOutOfBoundsException.class); } @Test - void getPropertyValueAutoGrowMultiDimensionalList() { - assertThat(wrapper.getPropertyValue("multiList[0][0]")).isNotNull(); - assertThat(bean.getMultiList()).hasSize(1); - assertThat(bean.getMultiList().get(0)).singleElement().isInstanceOf(Bean.class); + void getPropertyValueAutoGrowNestedList() { + assertThat(wrapper.getPropertyValue("nestedList[0][0]")).isNotNull(); + assertThat(bean.getNestedList()).hasSize(1); + assertThat(bean.getNestedList().get(0)).singleElement().isInstanceOf(Bean.class); + } + + @Test + void getPropertyValueAutoGrowNestedNestedList() { + assertThat(wrapper.getPropertyValue("nestedNestedList[0][0][0]")).isNotNull(); + assertThat(bean.getNestedNestedList()).hasSize(1); + assertThat(bean.getNestedNestedList().get(0).get(0)).singleElement().isInstanceOf(Bean.class); } @Test @@ -174,11 +182,23 @@ class BeanWrapperAutoGrowingTests { } @Test - void setNestedPropertyValueAutoGrowMap() { + void setPropertyValueAutoGrowMapNestedValue() { wrapper.setPropertyValue("map[A].nested", new Bean()); assertThat(bean.getMap().get("A").getNested()).isInstanceOf(Bean.class); } + @Test + void setPropertyValueAutoGrowNestedMapWithinMap() { + wrapper.setPropertyValue("nestedMap[A][B]", new Bean()); + assertThat(bean.getNestedMap().get("A").get("B")).isInstanceOf(Bean.class); + } + + @Test @Disabled // gh-32154 + void setPropertyValueAutoGrowNestedNestedMapWithinMap() { + wrapper.setPropertyValue("nestedNestedMap[A][B][C]", new Bean()); + assertThat(bean.getNestedNestedMap().get("A").get("B").get("C)")).isInstanceOf(Bean.class); + } + @SuppressWarnings("rawtypes") public static class Bean { @@ -197,12 +217,18 @@ class BeanWrapperAutoGrowingTests { private List list; - private List> multiList; + private List> nestedList; + + private List>> nestedNestedList; private List listNotParameterized; private Map map; + private Map> nestedMap; + + private Map>> nestedNestedMap; + public String getProp() { return prop; } @@ -251,12 +277,20 @@ class BeanWrapperAutoGrowingTests { this.list = list; } - public List> getMultiList() { - return multiList; + public List> getNestedList() { + return nestedList; } - public void setMultiList(List> multiList) { - this.multiList = multiList; + public void setNestedList(List> nestedList) { + this.nestedList = nestedList; + } + + public List>> getNestedNestedList() { + return nestedNestedList; + } + + public void setNestedNestedList(List>> nestedNestedList) { + this.nestedNestedList = nestedNestedList; } public NestedNoDefaultConstructor getNestedNoConstructor() { @@ -282,6 +316,22 @@ class BeanWrapperAutoGrowingTests { public void setMap(Map map) { this.map = map; } + + public Map> getNestedMap() { + return nestedMap; + } + + public void setNestedMap(Map> nestedMap) { + this.nestedMap = nestedMap; + } + + public Map>> getNestedNestedMap() { + return nestedNestedMap; + } + + public void setNestedNestedMap(Map>> nestedNestedMap) { + this.nestedNestedMap = nestedNestedMap; + } }