From 6177f00a630021e207424b11fe447edec596739f Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Wed, 18 Aug 2021 17:10:40 +0200 Subject: [PATCH] Polish PropertyAccessor tests --- .../beans/AbstractPropertyAccessorTests.java | 359 +++++++----------- .../beans/BeanWrapperTests.java | 43 ++- .../beans/DirectFieldAccessorTests.java | 6 +- 3 files changed, 170 insertions(+), 238 deletions(-) diff --git a/spring-beans/src/test/java/org/springframework/beans/AbstractPropertyAccessorTests.java b/spring-beans/src/test/java/org/springframework/beans/AbstractPropertyAccessorTests.java index a8c779126f..2dd52740b6 100644 --- a/spring-beans/src/test/java/org/springframework/beans/AbstractPropertyAccessorTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/AbstractPropertyAccessorTests.java @@ -68,25 +68,25 @@ import static org.assertj.core.api.Assertions.within; * @author Dave Syer * @author Stephane Nicoll */ -public abstract class AbstractPropertyAccessorTests { +abstract class AbstractPropertyAccessorTests { protected abstract AbstractPropertyAccessor createAccessor(Object target); @Test - public void createWithNullTarget() { + void createWithNullTarget() { assertThatIllegalArgumentException().isThrownBy(() -> createAccessor(null)); } @Test - public void isReadableProperty() { + void isReadableProperty() { AbstractPropertyAccessor accessor = createAccessor(new Simple("John", 2)); assertThat(accessor.isReadableProperty("name")).isTrue(); } @Test - public void isReadablePropertyNotReadable() { + void isReadablePropertyNotReadable() { AbstractPropertyAccessor accessor = createAccessor(new NoRead()); assertThat(accessor.isReadableProperty("age")).isFalse(); @@ -96,42 +96,42 @@ public abstract class AbstractPropertyAccessorTests { * Shouldn't throw an exception: should just return false */ @Test - public void isReadablePropertyNoSuchProperty() { + void isReadablePropertyNoSuchProperty() { AbstractPropertyAccessor accessor = createAccessor(new NoRead()); assertThat(accessor.isReadableProperty("xxxxx")).isFalse(); } @Test - public void isReadablePropertyNull() { + void isReadablePropertyNull() { AbstractPropertyAccessor accessor = createAccessor(new NoRead()); assertThatIllegalArgumentException().isThrownBy(() -> accessor.isReadableProperty(null)); } @Test - public void isWritableProperty() { + void isWritableProperty() { AbstractPropertyAccessor accessor = createAccessor(new Simple("John", 2)); assertThat(accessor.isWritableProperty("name")).isTrue(); } @Test - public void isWritablePropertyNull() { + void isWritablePropertyNull() { AbstractPropertyAccessor accessor = createAccessor(new NoRead()); assertThatIllegalArgumentException().isThrownBy(() -> accessor.isWritableProperty(null)); } @Test - public void isWritablePropertyNoSuchProperty() { + void isWritablePropertyNoSuchProperty() { AbstractPropertyAccessor accessor = createAccessor(new NoRead()); assertThat(accessor.isWritableProperty("xxxxx")).isFalse(); } @Test - public void isReadableWritableForIndexedProperties() { + void isReadableWritableForIndexedProperties() { IndexedTestBean target = new IndexedTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); @@ -177,28 +177,28 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void getSimpleProperty() { + void getSimpleProperty() { Simple target = new Simple("John", 2); AbstractPropertyAccessor accessor = createAccessor(target); assertThat(accessor.getPropertyValue("name")).isEqualTo("John"); } @Test - public void getNestedProperty() { + void getNestedProperty() { Person target = createPerson("John", "London", "UK"); AbstractPropertyAccessor accessor = createAccessor(target); assertThat(accessor.getPropertyValue("address.city")).isEqualTo("London"); } @Test - public void getNestedDeepProperty() { + void getNestedDeepProperty() { Person target = createPerson("John", "London", "UK"); AbstractPropertyAccessor accessor = createAccessor(target); assertThat(accessor.getPropertyValue("address.country.name")).isEqualTo("UK"); } @Test - public void getAnotherNestedDeepProperty() { + void getAnotherNestedDeepProperty() { ITestBean target = new TestBean("rod", 31); ITestBean kerry = new TestBean("kerry", 35); target.setSpouse(kerry); @@ -213,7 +213,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void getPropertyIntermediatePropertyIsNull() { + void getPropertyIntermediatePropertyIsNull() { Person target = createPerson("John", "London", "UK"); target.address = null; AbstractPropertyAccessor accessor = createAccessor(target); @@ -226,7 +226,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void getPropertyIntermediatePropertyIsNullWithAutoGrow() { + void getPropertyIntermediatePropertyIsNullWithAutoGrow() { Person target = createPerson("John", "London", "UK"); target.address = null; AbstractPropertyAccessor accessor = createAccessor(target); @@ -236,7 +236,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void getPropertyIntermediateMapEntryIsNullWithAutoGrow() { + void getPropertyIntermediateMapEntryIsNullWithAutoGrow() { Foo target = new Foo(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.setConversionService(new DefaultConversionService()); @@ -246,7 +246,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void getUnknownProperty() { + void getUnknownProperty() { Simple target = new Simple("John", 2); AbstractPropertyAccessor accessor = createAccessor(target); assertThatExceptionOfType(NotReadablePropertyException.class).isThrownBy(() -> @@ -258,7 +258,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void getUnknownNestedProperty() { + void getUnknownNestedProperty() { Person target = createPerson("John", "London", "UK"); AbstractPropertyAccessor accessor = createAccessor(target); @@ -267,7 +267,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setSimpleProperty() { + void setSimpleProperty() { Simple target = new Simple("John", 2); AbstractPropertyAccessor accessor = createAccessor(target); @@ -278,7 +278,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setNestedProperty() { + void setNestedProperty() { Person target = createPerson("John", "Paris", "FR"); AbstractPropertyAccessor accessor = createAccessor(target); @@ -287,7 +287,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setNestedPropertyPolymorphic() throws Exception { + void setNestedPropertyPolymorphic() throws Exception { ITestBean target = new TestBean("rod", 31); ITestBean kerry = new Employee(); @@ -308,7 +308,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setAnotherNestedProperty() throws Exception { + void setAnotherNestedProperty() throws Exception { ITestBean target = new TestBean("rod", 31); ITestBean kerry = new TestBean("kerry", 0); @@ -328,7 +328,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setYetAnotherNestedProperties() { + void setYetAnotherNestedProperties() { String doctorCompany = ""; String lawyerCompany = "Dr. Sueem"; TestBean target = new TestBean(); @@ -340,7 +340,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setNestedDeepProperty() { + void setNestedDeepProperty() { Person target = createPerson("John", "Paris", "FR"); AbstractPropertyAccessor accessor = createAccessor(target); @@ -349,7 +349,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void testErrorMessageOfNestedProperty() { + void testErrorMessageOfNestedProperty() { ITestBean target = new TestBean(); ITestBean child = new DifferentTestBean(); child.setName("test"); @@ -364,7 +364,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setPropertyIntermediatePropertyIsNull() { + void setPropertyIntermediatePropertyIsNull() { Person target = createPerson("John", "Paris", "FR"); target.address.country = null; AbstractPropertyAccessor accessor = createAccessor(target); @@ -378,7 +378,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setAnotherPropertyIntermediatePropertyIsNull() throws Exception { + void setAnotherPropertyIntermediatePropertyIsNull() throws Exception { ITestBean target = new TestBean("rod", 31); AbstractPropertyAccessor accessor = createAccessor(target); assertThatExceptionOfType(NullValueInNestedPathException.class).isThrownBy(() -> @@ -387,7 +387,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setPropertyIntermediatePropertyIsNullWithAutoGrow() { + void setPropertyIntermediatePropertyIsNullWithAutoGrow() { Person target = createPerson("John", "Paris", "FR"); target.address.country = null; AbstractPropertyAccessor accessor = createAccessor(target); @@ -398,7 +398,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setPropertyIntermediateListIsNullWithAutoGrow() { + void setPropertyIntermediateListIsNullWithAutoGrow() { Foo target = new Foo(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.setConversionService(new DefaultConversionService()); @@ -410,7 +410,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setPropertyIntermediateListIsNullWithNoConversionService() { + void setPropertyIntermediateListIsNullWithNoConversionService() { Foo target = new Foo(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.setAutoGrowNestedPaths(true); @@ -419,7 +419,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setPropertyIntermediateListIsNullWithBadConversionService() { + void setPropertyIntermediateListIsNullWithBadConversionService() { Foo target = new Foo(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.setConversionService(new GenericConversionService() { @@ -435,7 +435,7 @@ public abstract class AbstractPropertyAccessorTests { @Test - public void setEmptyPropertyValues() { + void setEmptyPropertyValues() { TestBean target = new TestBean(); int age = 50; String name = "Tony"; @@ -452,7 +452,7 @@ public abstract class AbstractPropertyAccessorTests { @Test - public void setValidPropertyValues() { + void setValidPropertyValues() { TestBean target = new TestBean(); String newName = "tony"; int newAge = 65; @@ -469,7 +469,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setIndividualValidPropertyValues() { + void setIndividualValidPropertyValues() { TestBean target = new TestBean(); String newName = "tony"; int newAge = 65; @@ -484,7 +484,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setPropertyIsReflectedImmediately() { + void setPropertyIsReflectedImmediately() { TestBean target = new TestBean(); int newAge = 33; AbstractPropertyAccessor accessor = createAccessor(target); @@ -495,7 +495,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setPropertyToNull() { + void setPropertyToNull() { TestBean target = new TestBean(); target.setName("Frank"); // we need to change it back target.setSpouse(target); @@ -510,7 +510,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setIndexedPropertyIgnored() { + void setIndexedPropertyIgnored() { MutablePropertyValues values = new MutablePropertyValues(); values.add("toBeIgnored[0]", 42); AbstractPropertyAccessor accessor = createAccessor(new Object()); @@ -518,7 +518,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setPropertyWithPrimitiveConversion() { + void setPropertyWithPrimitiveConversion() { MutablePropertyValues values = new MutablePropertyValues(); values.add("name", 42); TestBean target = new TestBean(); @@ -528,7 +528,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setPropertyWithCustomEditor() { + void setPropertyWithCustomEditor() { MutablePropertyValues values = new MutablePropertyValues(); values.add("name", Integer.class); TestBean target = new TestBean(); @@ -544,7 +544,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setStringPropertyWithCustomEditor() throws Exception { + void setStringPropertyWithCustomEditor() throws Exception { TestBean target = new TestBean(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.registerCustomEditor(String.class, "name", new PropertyEditorSupport() { @@ -567,7 +567,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setBooleanProperty() { + void setBooleanProperty() { BooleanTestBean target = new BooleanTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); @@ -581,7 +581,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setNumberProperties() { + void setNumberProperties() { NumberTestBean target = new NumberTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.setPropertyValue("short2", "2"); @@ -608,7 +608,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setNumberPropertiesWithCoercion() { + void setNumberPropertiesWithCoercion() { NumberTestBean target = new NumberTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.setPropertyValue("short2", 2); @@ -635,7 +635,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setPrimitiveProperties() { + void setPrimitiveProperties() { NumberPropertyBean target = new NumberPropertyBean(); AbstractPropertyAccessor accessor = createAccessor(target); @@ -684,7 +684,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setEnumProperty() { + void setEnumProperty() { EnumTester target = new EnumTester(); AbstractPropertyAccessor accessor = createAccessor(target); @@ -699,7 +699,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setGenericEnumProperty() { + void setGenericEnumProperty() { EnumConsumer target = new EnumConsumer(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.setPropertyValue("enumValue", TestEnum.class.getName() + ".TEST_VALUE"); @@ -707,7 +707,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setWildcardEnumProperty() { + void setWildcardEnumProperty() { WildcardEnumConsumer target = new WildcardEnumConsumer(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.setPropertyValue("enumValue", TestEnum.class.getName() + ".TEST_VALUE"); @@ -715,7 +715,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setPropertiesProperty() throws Exception { + void setPropertiesProperty() throws Exception { PropsTester target = new PropsTester(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.setPropertyValue("name", "ptest"); @@ -733,44 +733,32 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setStringArrayProperty() throws Exception { + void setStringArrayProperty() throws Exception { PropsTester target = new PropsTester(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.setPropertyValue("stringArray", new String[]{"foo", "fi", "fi", "fum"}); - assertThat(target.stringArray.length == 4).as("stringArray length = 4").isTrue(); - assertThat(target.stringArray[0].equals("foo") && target.stringArray[1].equals("fi") && - target.stringArray[2].equals("fi") && target.stringArray[3].equals("fum")).as("correct values").isTrue(); + assertThat(target.stringArray).containsExactly("foo", "fi", "fi", "fum"); - List list = new ArrayList<>(); - list.add("foo"); - list.add("fi"); - list.add("fi"); - list.add("fum"); - accessor.setPropertyValue("stringArray", list); - assertThat(target.stringArray.length == 4).as("stringArray length = 4").isTrue(); - assertThat(target.stringArray[0].equals("foo") && target.stringArray[1].equals("fi") && - target.stringArray[2].equals("fi") && target.stringArray[3].equals("fum")).as("correct values").isTrue(); + accessor.setPropertyValue("stringArray", Arrays.asList("foo", "fi", "fi", "fum")); + assertThat(target.stringArray).containsExactly("foo", "fi", "fi", "fum"); Set set = new HashSet<>(); set.add("foo"); set.add("fi"); set.add("fum"); accessor.setPropertyValue("stringArray", set); - assertThat(target.stringArray.length == 3).as("stringArray length = 3").isTrue(); - List result = Arrays.asList(target.stringArray); - assertThat(result.contains("foo") && result.contains("fi") && result.contains("fum")).as("correct values").isTrue(); + assertThat(target.stringArray).containsExactlyInAnyOrder("foo", "fi", "fum"); accessor.setPropertyValue("stringArray", "one"); - assertThat(target.stringArray.length == 1).as("stringArray length = 1").isTrue(); - assertThat(target.stringArray[0]).as("stringArray elt is ok").isEqualTo("one"); + assertThat(target.stringArray).containsExactly("one"); accessor.setPropertyValue("stringArray", null); assertThat(target.stringArray).as("stringArray is null").isNull(); } @Test - public void setStringArrayPropertyWithCustomStringEditor() throws Exception { + void setStringArrayPropertyWithCustomStringEditor() throws Exception { PropsTester target = new PropsTester(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.registerCustomEditor(String.class, "stringArray", new PropertyEditorSupport() { @@ -781,126 +769,90 @@ public abstract class AbstractPropertyAccessorTests { }); accessor.setPropertyValue("stringArray", new String[] {"4foo", "7fi", "6fi", "5fum"}); - assertThat(target.stringArray.length == 4).as("stringArray length = 4").isTrue(); - assertThat(target.stringArray[0].equals("foo") && target.stringArray[1].equals("fi") && - target.stringArray[2].equals("fi") && target.stringArray[3].equals("fum")).as("correct values").isTrue(); + assertThat(target.stringArray).containsExactly("foo", "fi", "fi", "fum"); - List list = new ArrayList<>(); - list.add("4foo"); - list.add("7fi"); - list.add("6fi"); - list.add("5fum"); + List list = Arrays.asList("4foo", "7fi", "6fi", "5fum"); accessor.setPropertyValue("stringArray", list); - assertThat(target.stringArray.length == 4).as("stringArray length = 4").isTrue(); - assertThat(target.stringArray[0].equals("foo") && target.stringArray[1].equals("fi") && - target.stringArray[2].equals("fi") && target.stringArray[3].equals("fum")).as("correct values").isTrue(); + assertThat(target.stringArray).containsExactly("foo", "fi", "fi", "fum"); Set set = new HashSet<>(); set.add("4foo"); set.add("7fi"); set.add("6fum"); accessor.setPropertyValue("stringArray", set); - assertThat(target.stringArray.length == 3).as("stringArray length = 3").isTrue(); - List result = Arrays.asList(target.stringArray); - assertThat(result.contains("foo") && result.contains("fi") && result.contains("fum")).as("correct values").isTrue(); + assertThat(target.stringArray).containsExactlyInAnyOrder("foo", "fi", "fum"); accessor.setPropertyValue("stringArray", "8one"); - assertThat(target.stringArray.length == 1).as("stringArray length = 1").isTrue(); - assertThat(target.stringArray[0].equals("one")).as("correct values").isTrue(); + assertThat(target.stringArray).containsExactly("one"); } @Test - public void setStringArrayPropertyWithStringSplitting() throws Exception { + void setStringArrayPropertyWithStringSplitting() throws Exception { PropsTester target = new PropsTester(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.useConfigValueEditors(); accessor.setPropertyValue("stringArray", "a1,b2"); - assertThat(target.stringArray.length == 2).as("stringArray length = 2").isTrue(); - assertThat(target.stringArray[0].equals("a1") && target.stringArray[1].equals("b2")).as("correct values").isTrue(); + assertThat(target.stringArray).containsExactly("a1", "b2"); } @Test - public void setStringArrayPropertyWithCustomStringDelimiter() throws Exception { + void setStringArrayPropertyWithCustomStringDelimiter() throws Exception { PropsTester target = new PropsTester(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.registerCustomEditor(String[].class, "stringArray", new StringArrayPropertyEditor("-")); accessor.setPropertyValue("stringArray", "a1-b2"); - assertThat(target.stringArray.length == 2).as("stringArray length = 2").isTrue(); - assertThat(target.stringArray[0].equals("a1") && target.stringArray[1].equals("b2")).as("correct values").isTrue(); + assertThat(target.stringArray).containsExactly("a1", "b2"); } @Test - public void setStringArrayWithAutoGrow() throws Exception { + void setStringArrayWithAutoGrow() throws Exception { StringArrayBean target = new StringArrayBean(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.setAutoGrowNestedPaths(true); accessor.setPropertyValue("array[0]", "Test0"); - assertThat(target.getArray()).hasSize(1); + assertThat(target.getArray()).containsExactly("Test0"); accessor.setPropertyValue("array[2]", "Test2"); - assertThat(target.getArray()).hasSize(3); - assertThat(target.getArray()[0].equals("Test0") && target.getArray()[1] == null && - target.getArray()[2].equals("Test2")).as("correct values").isTrue(); + assertThat(target.getArray()).containsExactly("Test0", null, "Test2"); } @Test - public void setIntArrayProperty() { + void setIntArrayProperty() { PropsTester target = new PropsTester(); AbstractPropertyAccessor accessor = createAccessor(target); - accessor.setPropertyValue("intArray", new int[]{4, 5, 2, 3}); - assertThat(target.intArray.length == 4).as("intArray length = 4").isTrue(); - assertThat(target.intArray[0] == 4 && target.intArray[1] == 5 && - target.intArray[2] == 2 && target.intArray[3] == 3).as("correct values").isTrue(); + accessor.setPropertyValue("intArray", new int[] {4, 5, 2, 3}); + assertThat(target.intArray).containsExactly(4, 5, 2, 3); accessor.setPropertyValue("intArray", new String[] {"4", "5", "2", "3"}); - assertThat(target.intArray.length == 4).as("intArray length = 4").isTrue(); - assertThat(target.intArray[0] == 4 && target.intArray[1] == 5 && - target.intArray[2] == 2 && target.intArray[3] == 3).as("correct values").isTrue(); - - List list = new ArrayList<>(); - list.add(4); - list.add("5"); - list.add(2); - list.add("3"); - accessor.setPropertyValue("intArray", list); - assertThat(target.intArray.length == 4).as("intArray length = 4").isTrue(); - assertThat(target.intArray[0] == 4 && target.intArray[1] == 5 && - target.intArray[2] == 2 && target.intArray[3] == 3).as("correct values").isTrue(); + assertThat(target.intArray).containsExactly(4, 5, 2, 3); + + accessor.setPropertyValue("intArray", Arrays.asList(4, "5", 2, "3")); + assertThat(target.intArray).containsExactly(4, 5, 2, 3); Set set = new HashSet<>(); set.add("4"); set.add(5); set.add("3"); accessor.setPropertyValue("intArray", set); - assertThat(target.intArray.length == 3).as("intArray length = 3").isTrue(); - List result = new ArrayList<>(); - result.add(target.intArray[0]); - result.add(target.intArray[1]); - result.add(target.intArray[2]); - assertThat(result.contains(4) && result.contains(5) && - result.contains(3)).as("correct values").isTrue(); + assertThat(target.intArray).containsExactlyInAnyOrder(4, 5, 3); accessor.setPropertyValue("intArray", new Integer[] {1}); - assertThat(target.intArray.length == 1).as("intArray length = 4").isTrue(); - assertThat(target.intArray[0] == 1).as("correct values").isTrue(); + assertThat(target.intArray).containsExactly(1); accessor.setPropertyValue("intArray", 1); - assertThat(target.intArray.length == 1).as("intArray length = 4").isTrue(); - assertThat(target.intArray[0] == 1).as("correct values").isTrue(); + assertThat(target.intArray).containsExactly(1); accessor.setPropertyValue("intArray", new String[] {"1"}); - assertThat(target.intArray.length == 1).as("intArray length = 4").isTrue(); - assertThat(target.intArray[0] == 1).as("correct values").isTrue(); + assertThat(target.intArray).containsExactly(1); accessor.setPropertyValue("intArray", "1"); - assertThat(target.intArray.length == 1).as("intArray length = 4").isTrue(); - assertThat(target.intArray[0] == 1).as("correct values").isTrue(); + assertThat(target.intArray).containsExactly(1); } @Test - public void setIntArrayPropertyWithCustomEditor() { + void setIntArrayPropertyWithCustomEditor() { PropsTester target = new PropsTester(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.registerCustomEditor(int.class, new PropertyEditorSupport() { @@ -910,51 +862,41 @@ public abstract class AbstractPropertyAccessorTests { } }); - accessor.setPropertyValue("intArray", new int[]{4, 5, 2, 3}); - assertThat(target.intArray.length == 4).as("intArray length = 4").isTrue(); - assertThat(target.intArray[0] == 4 && target.intArray[1] == 5 && - target.intArray[2] == 2 && target.intArray[3] == 3).as("correct values").isTrue(); + accessor.setPropertyValue("intArray", new int[] {4, 5, 2, 3}); + assertThat(target.intArray).containsExactly(4, 5, 2, 3); - accessor.setPropertyValue("intArray", new String[]{"3", "4", "1", "2"}); - assertThat(target.intArray.length == 4).as("intArray length = 4").isTrue(); - assertThat(target.intArray[0] == 4 && target.intArray[1] == 5 && - target.intArray[2] == 2 && target.intArray[3] == 3).as("correct values").isTrue(); + accessor.setPropertyValue("intArray", new String[] {"3", "4", "1", "2"}); + assertThat(target.intArray).containsExactly(4, 5, 2, 3); accessor.setPropertyValue("intArray", 1); - assertThat(target.intArray.length == 1).as("intArray length = 4").isTrue(); - assertThat(target.intArray[0] == 1).as("correct values").isTrue(); + assertThat(target.intArray).containsExactly(1); accessor.setPropertyValue("intArray", new String[]{"0"}); - assertThat(target.intArray.length == 1).as("intArray length = 4").isTrue(); - assertThat(target.intArray[0] == 1).as("correct values").isTrue(); + assertThat(target.intArray).containsExactly(1); accessor.setPropertyValue("intArray", "0"); - assertThat(target.intArray.length == 1).as("intArray length = 4").isTrue(); - assertThat(target.intArray[0] == 1).as("correct values").isTrue(); + assertThat(target.intArray).containsExactly(1); } @Test - public void setIntArrayPropertyWithStringSplitting() throws Exception { + void setIntArrayPropertyWithStringSplitting() throws Exception { PropsTester target = new PropsTester(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.useConfigValueEditors(); accessor.setPropertyValue("intArray", "4,5"); - assertThat(target.intArray.length == 2).as("intArray length = 2").isTrue(); - assertThat(target.intArray[0] == 4 && target.intArray[1] == 5).as("correct values").isTrue(); + assertThat(target.intArray).containsExactly(4, 5); } @Test - public void setPrimitiveArrayProperty() { + void setPrimitiveArrayProperty() { PrimitiveArrayBean target = new PrimitiveArrayBean(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.setPropertyValue("array", new String[]{"1", "2"}); - assertThat(target.getArray()).hasSize(2); - assertThat(target.getArray()[0]).isEqualTo(1); - assertThat(target.getArray()[1]).isEqualTo(2); + assertThat(target.getArray()).containsExactly(1, 2); } @Test - public void setPrimitiveArrayPropertyLargeMatchingWithSpecificEditor() { + void setPrimitiveArrayPropertyLargeMatchingWithSpecificEditor() { PrimitiveArrayBean target = new PrimitiveArrayBean(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.registerCustomEditor(int.class, "array", new PropertyEditorSupport() { @@ -965,15 +907,14 @@ public abstract class AbstractPropertyAccessorTests { } } }); - int[] input = new int[1024]; + int[] input = new int[10]; accessor.setPropertyValue("array", input); - assertThat(target.getArray()).hasSize(1024); - assertThat(target.getArray()[0]).isEqualTo(1); - assertThat(target.getArray()[1]).isEqualTo(1); + assertThat(target.getArray()).hasSize(10); + assertThat(Arrays.stream(target.getArray())).allMatch(n -> n == 1); } @Test - public void setPrimitiveArrayPropertyLargeMatchingWithIndexSpecificEditor() { + void setPrimitiveArrayPropertyLargeMatchingWithIndexSpecificEditor() { PrimitiveArrayBean target = new PrimitiveArrayBean(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.registerCustomEditor(int.class, "array[1]", new PropertyEditorSupport() { @@ -984,49 +925,38 @@ public abstract class AbstractPropertyAccessorTests { } } }); - int[] input = new int[1024]; + int[] input = new int[10]; accessor.setPropertyValue("array", input); - assertThat(target.getArray()).hasSize(1024); + assertThat(target.getArray()).hasSize(10); assertThat(target.getArray()[0]).isZero(); assertThat(target.getArray()[1]).isEqualTo(1); + assertThat(Arrays.stream(target.getArray()).skip(2)).allMatch(n -> n == 0); } @Test - public void setPrimitiveArrayPropertyWithAutoGrow() throws Exception { + void setPrimitiveArrayPropertyWithAutoGrow() throws Exception { PrimitiveArrayBean target = new PrimitiveArrayBean(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.setAutoGrowNestedPaths(true); accessor.setPropertyValue("array[0]", 1); - assertThat(target.getArray()).hasSize(1); + assertThat(target.getArray()).containsExactly(1); accessor.setPropertyValue("array[2]", 3); - assertThat(target.getArray()).hasSize(3); - assertThat(target.getArray()[0] == 1 && target.getArray()[1] == 0 && - target.getArray()[2] == 3).as("correct values").isTrue(); + assertThat(target.getArray()).containsExactly(1, 0, 3); } @Test - @SuppressWarnings("rawtypes") - public void setGenericArrayProperty() { + void setGenericArrayProperty() { + @SuppressWarnings("rawtypes") SkipReaderStub target = new SkipReaderStub(); AbstractPropertyAccessor accessor = createAccessor(target); - List values = new ArrayList<>(); - values.add("1"); - values.add("2"); - values.add("3"); - values.add("4"); - accessor.setPropertyValue("items", values); - Object[] result = target.items; - assertThat(result).hasSize(4); - assertThat(result[0]).isEqualTo("1"); - assertThat(result[1]).isEqualTo("2"); - assertThat(result[2]).isEqualTo("3"); - assertThat(result[3]).isEqualTo("4"); + accessor.setPropertyValue("items", Arrays.asList("1", "2", "3", "4")); + assertThat(target.items).containsExactly("1", "2", "3", "4"); } @Test - public void setArrayPropertyToObject() { + void setArrayPropertyToObject() { ArrayToObject target = new ArrayToObject(); AbstractPropertyAccessor accessor = createAccessor(target); @@ -1040,7 +970,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setCollectionProperty() { + void setCollectionProperty() { IndexedTestBean target = new IndexedTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); Collection coll = new HashSet<>(); @@ -1061,9 +991,9 @@ public abstract class AbstractPropertyAccessorTests { assertThat((List) target.getList()).isSameAs(list); } - @SuppressWarnings("unchecked") // list cannot be properly parameterized as it breaks other tests @Test - public void setCollectionPropertyNonMatchingType() { + @SuppressWarnings("unchecked") // list cannot be properly parameterized as it breaks other tests + void setCollectionPropertyNonMatchingType() { IndexedTestBean target = new IndexedTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); Collection coll = new ArrayList<>(); @@ -1088,9 +1018,9 @@ public abstract class AbstractPropertyAccessorTests { assertThat(target.getList().containsAll(list)).isTrue(); } - @SuppressWarnings("unchecked") // list cannot be properly parameterized as it breaks other tests @Test - public void setCollectionPropertyWithArrayValue() { + @SuppressWarnings("unchecked") // list cannot be properly parameterized as it breaks other tests + void setCollectionPropertyWithArrayValue() { IndexedTestBean target = new IndexedTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); Collection coll = new HashSet<>(); @@ -1115,9 +1045,9 @@ public abstract class AbstractPropertyAccessorTests { assertThat(target.getList().containsAll(list)).isTrue(); } - @SuppressWarnings("unchecked") // list cannot be properly parameterized as it breaks other tests @Test - public void setCollectionPropertyWithIntArrayValue() { + @SuppressWarnings("unchecked") // list cannot be properly parameterized as it breaks other tests + void setCollectionPropertyWithIntArrayValue() { IndexedTestBean target = new IndexedTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); Collection coll = new HashSet<>(); @@ -1142,9 +1072,9 @@ public abstract class AbstractPropertyAccessorTests { assertThat(target.getList().containsAll(list)).isTrue(); } - @SuppressWarnings("unchecked") // list cannot be properly parameterized as it breaks other tests @Test - public void setCollectionPropertyWithIntegerValue() { + @SuppressWarnings("unchecked") // list cannot be properly parameterized as it breaks other tests + void setCollectionPropertyWithIntegerValue() { IndexedTestBean target = new IndexedTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); Collection coll = new HashSet<>(); @@ -1169,9 +1099,9 @@ public abstract class AbstractPropertyAccessorTests { assertThat(target.getList().containsAll(list)).isTrue(); } - @SuppressWarnings("unchecked") // list cannot be properly parameterized as it breaks other tests @Test - public void setCollectionPropertyWithStringValue() { + @SuppressWarnings("unchecked") // list cannot be properly parameterized as it breaks other tests + void setCollectionPropertyWithStringValue() { IndexedTestBean target = new IndexedTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); List set = new ArrayList<>(); @@ -1192,7 +1122,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setCollectionPropertyWithStringValueAndCustomEditor() { + void setCollectionPropertyWithStringValueAndCustomEditor() { IndexedTestBean target = new IndexedTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.registerCustomEditor(String.class, "set", new StringTrimmerEditor(false)); @@ -1213,7 +1143,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setMapProperty() { + void setMapProperty() { IndexedTestBean target = new IndexedTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); Map map = new HashMap<>(); @@ -1227,7 +1157,8 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setMapPropertyNonMatchingType() { + @SuppressWarnings("unchecked") + void setMapPropertyNonMatchingType() { IndexedTestBean target = new IndexedTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); Map map = new TreeMap<>(); @@ -1243,7 +1174,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setMapPropertyWithTypeConversion() { + void setMapPropertyWithTypeConversion() { IndexedTestBean target = new IndexedTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.registerCustomEditor(TestBean.class, new PropertyEditorSupport() { @@ -1272,7 +1203,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setMapPropertyWithUnmodifiableMap() { + void setMapPropertyWithUnmodifiableMap() { IndexedTestBean target = new IndexedTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.registerCustomEditor(TestBean.class, "map", new PropertyEditorSupport() { @@ -1296,7 +1227,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setMapPropertyWithCustomUnmodifiableMap() { + void setMapPropertyWithCustomUnmodifiableMap() { IndexedTestBean target = new IndexedTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.registerCustomEditor(TestBean.class, "map", new PropertyEditorSupport() { @@ -1319,9 +1250,9 @@ public abstract class AbstractPropertyAccessorTests { assertThat(((TestBean) target.getMap().get(2)).getName()).isEqualTo("rob"); } - @SuppressWarnings({ "unchecked", "rawtypes" }) // must work with raw map in this test @Test - public void setRawMapPropertyWithNoEditorRegistered() { + @SuppressWarnings({ "unchecked", "rawtypes" }) // must work with raw map in this test + void setRawMapPropertyWithNoEditorRegistered() { IndexedTestBean target = new IndexedTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); Map inputMap = new HashMap(); @@ -1336,7 +1267,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setUnknownProperty() { + void setUnknownProperty() { Simple target = new Simple("John", 2); AbstractPropertyAccessor accessor = createAccessor(target); assertThatExceptionOfType(NotWritablePropertyException.class).isThrownBy(() -> @@ -1349,7 +1280,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setUnknownPropertyWithPossibleMatches() { + void setUnknownPropertyWithPossibleMatches() { Simple target = new Simple("John", 2); AbstractPropertyAccessor accessor = createAccessor(target); assertThatExceptionOfType(NotWritablePropertyException.class).isThrownBy(() -> @@ -1361,7 +1292,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setUnknownOptionalProperty() { + void setUnknownOptionalProperty() { Simple target = new Simple("John", 2); AbstractPropertyAccessor accessor = createAccessor(target); PropertyValue value = new PropertyValue("foo", "value"); @@ -1370,7 +1301,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setPropertyInProtectedBaseBean() { + void setPropertyInProtectedBaseBean() { DerivedFromProtectedBaseBean target = new DerivedFromProtectedBaseBean(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.setPropertyValue("someProperty", "someValue"); @@ -1379,7 +1310,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setPropertyTypeMismatch() { + void setPropertyTypeMismatch() { TestBean target = new TestBean(); AbstractPropertyAccessor accessor = createAccessor(target); assertThatExceptionOfType(TypeMismatchException.class).isThrownBy(() -> @@ -1387,7 +1318,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setEmptyValueForPrimitiveProperty() { + void setEmptyValueForPrimitiveProperty() { TestBean target = new TestBean(); AbstractPropertyAccessor accessor = createAccessor(target); assertThatExceptionOfType(TypeMismatchException.class).isThrownBy(() -> @@ -1395,7 +1326,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setUnknownNestedProperty() { + void setUnknownNestedProperty() { Person target = createPerson("John", "Paris", "FR"); AbstractPropertyAccessor accessor = createAccessor(target); @@ -1404,7 +1335,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void setPropertyValuesIgnoresInvalidNestedOnRequest() { + void setPropertyValuesIgnoresInvalidNestedOnRequest() { ITestBean target = new TestBean(); MutablePropertyValues pvs = new MutablePropertyValues(); pvs.addPropertyValue(new PropertyValue("name", "rod")); @@ -1418,7 +1349,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void getAndSetIndexedProperties() { + void getAndSetIndexedProperties() { IndexedTestBean target = new IndexedTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); TestBean tb0 = target.getArray()[0]; @@ -1488,7 +1419,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void getAndSetIndexedPropertiesWithDirectAccess() { + void getAndSetIndexedPropertiesWithDirectAccess() { IndexedTestBean target = new IndexedTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); TestBean tb0 = target.getArray()[0]; @@ -1547,7 +1478,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void propertyType() { + void propertyType() { Person target = createPerson("John", "Paris", "FR"); AbstractPropertyAccessor accessor = createAccessor(target); @@ -1555,7 +1486,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void propertyTypeUnknownProperty() { + void propertyTypeUnknownProperty() { Simple target = new Simple("John", 2); AbstractPropertyAccessor accessor = createAccessor(target); @@ -1563,7 +1494,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void propertyTypeDescriptor() { + void propertyTypeDescriptor() { Person target = createPerson("John", "Paris", "FR"); AbstractPropertyAccessor accessor = createAccessor(target); @@ -1571,7 +1502,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void propertyTypeDescriptorUnknownProperty() { + void propertyTypeDescriptorUnknownProperty() { Simple target = new Simple("John", 2); AbstractPropertyAccessor accessor = createAccessor(target); @@ -1579,7 +1510,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void propertyTypeIndexedProperty() { + void propertyTypeIndexedProperty() { IndexedTestBean target = new IndexedTestBean(); AbstractPropertyAccessor accessor = createAccessor(target); assertThat(accessor.getPropertyType("map[key0]")).isNull(); @@ -1594,7 +1525,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void cornerSpr10115() { + void cornerSpr10115() { Spr10115Bean target = new Spr10115Bean(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.setPropertyValue("prop1", "val1"); @@ -1602,7 +1533,7 @@ public abstract class AbstractPropertyAccessorTests { } @Test - public void cornerSpr13837() { + void cornerSpr13837() { Spr13837Bean target = new Spr13837Bean(); AbstractPropertyAccessor accessor = createAccessor(target); accessor.setPropertyValue("something", 42); diff --git a/spring-beans/src/test/java/org/springframework/beans/BeanWrapperTests.java b/spring-beans/src/test/java/org/springframework/beans/BeanWrapperTests.java index 0711189b5f..8856e31a0e 100644 --- a/spring-beans/src/test/java/org/springframework/beans/BeanWrapperTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/BeanWrapperTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -26,6 +26,7 @@ import org.springframework.beans.testfixture.beans.TestBean; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.assertj.core.api.Assertions.assertThatNoException; /** * Specific {@link BeanWrapperImpl} tests. @@ -37,7 +38,7 @@ import static org.assertj.core.api.Assertions.assertThatExceptionOfType; * @author Chris Beams * @author Dave Syer */ -public class BeanWrapperTests extends AbstractPropertyAccessorTests { +class BeanWrapperTests extends AbstractPropertyAccessorTests { @Override protected BeanWrapperImpl createAccessor(Object target) { @@ -46,7 +47,7 @@ public class BeanWrapperTests extends AbstractPropertyAccessorTests { @Test - public void setterDoesNotCallGetter() { + void setterDoesNotCallGetter() { GetterBean target = new GetterBean(); BeanWrapper accessor = createAccessor(target); accessor.setPropertyValue("name", "tom"); @@ -55,7 +56,7 @@ public class BeanWrapperTests extends AbstractPropertyAccessorTests { } @Test - public void getterSilentlyFailWithOldValueExtraction() { + void getterSilentlyFailWithOldValueExtraction() { GetterBean target = new GetterBean(); BeanWrapper accessor = createAccessor(target); accessor.setExtractOldValueForEditor(true); // This will call the getter @@ -65,7 +66,7 @@ public class BeanWrapperTests extends AbstractPropertyAccessorTests { } @Test - public void aliasedSetterThroughDefaultMethod() { + void aliasedSetterThroughDefaultMethod() { GetterBean target = new GetterBean(); BeanWrapper accessor = createAccessor(target); accessor.setPropertyValue("aliasedName", "tom"); @@ -74,7 +75,7 @@ public class BeanWrapperTests extends AbstractPropertyAccessorTests { } @Test - public void setValidAndInvalidPropertyValuesShouldContainExceptionDetails() { + void setValidAndInvalidPropertyValuesShouldContainExceptionDetails() { TestBean target = new TestBean(); String newName = "tony"; String invalidTouchy = ".valid"; @@ -91,12 +92,12 @@ public class BeanWrapperTests extends AbstractPropertyAccessorTests { .getNewValue()).isEqualTo(invalidTouchy); }); // Test validly set property matches - assertThat(target.getName().equals(newName)).as("Valid set property must stick").isTrue(); - assertThat(target.getAge() == 0).as("Invalid set property must retain old value").isTrue(); + assertThat(target.getName()).as("Valid set property must stick").isEqualTo(newName); + assertThat(target.getAge()).as("Invalid set property must retain old value").isEqualTo(0); } @Test - public void checkNotWritablePropertyHoldPossibleMatches() { + void checkNotWritablePropertyHoldPossibleMatches() { TestBean target = new TestBean(); BeanWrapper accessor = createAccessor(target); assertThatExceptionOfType(NotWritablePropertyException.class).isThrownBy(() -> @@ -105,15 +106,15 @@ public class BeanWrapperTests extends AbstractPropertyAccessorTests { } @Test // Can't be shared; there is no such thing as a read-only field - public void setReadOnlyMapProperty() { + void setReadOnlyMapProperty() { TypedReadOnlyMap map = new TypedReadOnlyMap(Collections.singletonMap("key", new TestBean())); TypedReadOnlyMapClient target = new TypedReadOnlyMapClient(); BeanWrapper accessor = createAccessor(target); - accessor.setPropertyValue("map", map); + assertThatNoException().isThrownBy(() -> accessor.setPropertyValue("map", map)); } @Test - public void notWritablePropertyExceptionContainsAlternativeMatch() { + void notWritablePropertyExceptionContainsAlternativeMatch() { IntelliBean target = new IntelliBean(); BeanWrapper bw = createAccessor(target); try { @@ -121,12 +122,12 @@ public class BeanWrapperTests extends AbstractPropertyAccessorTests { } catch (NotWritablePropertyException ex) { assertThat(ex.getPossibleMatches()).as("Possible matches not determined").isNotNull(); - assertThat(ex.getPossibleMatches().length).as("Invalid amount of alternatives").isEqualTo(1); + assertThat(ex.getPossibleMatches()).as("Invalid amount of alternatives").hasSize(1); } } @Test - public void notWritablePropertyExceptionContainsAlternativeMatches() { + void notWritablePropertyExceptionContainsAlternativeMatches() { IntelliBean target = new IntelliBean(); BeanWrapper bw = createAccessor(target); try { @@ -134,23 +135,23 @@ public class BeanWrapperTests extends AbstractPropertyAccessorTests { } catch (NotWritablePropertyException ex) { assertThat(ex.getPossibleMatches()).as("Possible matches not determined").isNotNull(); - assertThat(ex.getPossibleMatches().length).as("Invalid amount of alternatives").isEqualTo(3); + assertThat(ex.getPossibleMatches()).as("Invalid amount of alternatives").hasSize(3); } } @Override @Test // Can't be shared: no type mismatch with a field - public void setPropertyTypeMismatch() { + void setPropertyTypeMismatch() { PropertyTypeMismatch target = new PropertyTypeMismatch(); BeanWrapper accessor = createAccessor(target); accessor.setPropertyValue("object", "a String"); assertThat(target.value).isEqualTo("a String"); - assertThat(target.getObject() == 8).isTrue(); + assertThat(target.getObject()).isEqualTo(8); assertThat(accessor.getPropertyValue("object")).isEqualTo(8); } @Test - public void propertyDescriptors() { + void propertyDescriptors() { TestBean target = new TestBean(); target.setSpouse(new TestBean()); BeanWrapper accessor = createAccessor(target); @@ -166,7 +167,7 @@ public class BeanWrapperTests extends AbstractPropertyAccessorTests { @Test @SuppressWarnings("unchecked") - public void getPropertyWithOptional() { + void getPropertyWithOptional() { GetterWithOptional target = new GetterWithOptional(); TestBean tb = new TestBean("x"); BeanWrapper accessor = createAccessor(target); @@ -189,7 +190,7 @@ public class BeanWrapperTests extends AbstractPropertyAccessorTests { } @Test - public void getPropertyWithOptionalAndAutoGrow() { + void getPropertyWithOptionalAndAutoGrow() { GetterWithOptional target = new GetterWithOptional(); BeanWrapper accessor = createAccessor(target); accessor.setAutoGrowNestedPaths(true); @@ -201,7 +202,7 @@ public class BeanWrapperTests extends AbstractPropertyAccessorTests { } @Test - public void incompletelyQuotedKeyLeadsToPropertyException() { + void incompletelyQuotedKeyLeadsToPropertyException() { TestBean target = new TestBean(); BeanWrapper accessor = createAccessor(target); assertThatExceptionOfType(NotWritablePropertyException.class).isThrownBy(() -> diff --git a/spring-beans/src/test/java/org/springframework/beans/DirectFieldAccessorTests.java b/spring-beans/src/test/java/org/springframework/beans/DirectFieldAccessorTests.java index 1ca8ddc602..2cbe8f2ff4 100644 --- a/spring-beans/src/test/java/org/springframework/beans/DirectFieldAccessorTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/DirectFieldAccessorTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-2021 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -29,7 +29,7 @@ import static org.assertj.core.api.Assertions.assertThat; * @author Chris Beams * @author Stephane Nicoll */ -public class DirectFieldAccessorTests extends AbstractPropertyAccessorTests { +class DirectFieldAccessorTests extends AbstractPropertyAccessorTests { @Override protected DirectFieldAccessor createAccessor(Object target) { @@ -38,7 +38,7 @@ public class DirectFieldAccessorTests extends AbstractPropertyAccessorTests { @Test - public void withShadowedField() { + void withShadowedField() { final StringBuilder sb = new StringBuilder(); TestBean target = new TestBean() {