From d6e05ddf2d46c0d014ee7b75a82502c207d4476a Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Sun, 16 Jul 2023 13:22:48 +0200 Subject: [PATCH] Polish XmlBeanDefinitionReaderTests --- .../xml/XmlBeanDefinitionReaderTests.java | 80 ++++++++----------- 1 file changed, 34 insertions(+), 46 deletions(-) diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/xml/XmlBeanDefinitionReaderTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/xml/XmlBeanDefinitionReaderTests.java index c71bd28ace..d8ed268255 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/xml/XmlBeanDefinitionReaderTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/xml/XmlBeanDefinitionReaderTests.java @@ -16,8 +16,6 @@ package org.springframework.beans.factory.xml; -import java.util.Arrays; - import org.junit.jupiter.api.Test; import org.xml.sax.InputSource; @@ -29,107 +27,98 @@ import org.springframework.beans.testfixture.beans.TestBean; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.InputStreamResource; import org.springframework.core.io.Resource; -import org.springframework.util.ObjectUtils; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.assertj.core.api.Assertions.assertThatNoException; /** * @author Rick Evans * @author Juergen Hoeller * @author Sam Brannen */ -public class XmlBeanDefinitionReaderTests { +class XmlBeanDefinitionReaderTests { + + private final SimpleBeanDefinitionRegistry registry = new SimpleBeanDefinitionRegistry(); + + private final XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(registry); + @Test - public void setParserClassSunnyDay() { - SimpleBeanDefinitionRegistry registry = new SimpleBeanDefinitionRegistry(); - new XmlBeanDefinitionReader(registry).setDocumentReaderClass(DefaultBeanDefinitionDocumentReader.class); + void setReaderClass() { + assertThatNoException().isThrownBy(() -> reader.setDocumentReaderClass(DefaultBeanDefinitionDocumentReader.class)); } @Test - public void withOpenInputStream() { - SimpleBeanDefinitionRegistry registry = new SimpleBeanDefinitionRegistry(); + void withInputStreamResourceWithoutExplicitValidationMode() { Resource resource = new InputStreamResource(getClass().getResourceAsStream("test.xml")); - assertThatExceptionOfType(BeanDefinitionStoreException.class).isThrownBy(() -> - new XmlBeanDefinitionReader(registry).loadBeanDefinitions(resource)); + assertThatExceptionOfType(BeanDefinitionStoreException.class).isThrownBy(() -> reader.loadBeanDefinitions(resource)); } @Test - public void withOpenInputStreamAndExplicitValidationMode() { - SimpleBeanDefinitionRegistry registry = new SimpleBeanDefinitionRegistry(); + void withInputStreamResourceAndExplicitValidationMode() { Resource resource = new InputStreamResource(getClass().getResourceAsStream("test.xml")); - XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(registry); reader.setValidationMode(XmlBeanDefinitionReader.VALIDATION_DTD); reader.loadBeanDefinitions(resource); - testBeanDefinitions(registry); + assertBeanDefinitions(registry); } @Test - public void withImport() { - SimpleBeanDefinitionRegistry registry = new SimpleBeanDefinitionRegistry(); + void withImport() { Resource resource = new ClassPathResource("import.xml", getClass()); - new XmlBeanDefinitionReader(registry).loadBeanDefinitions(resource); - testBeanDefinitions(registry); + reader.loadBeanDefinitions(resource); + assertBeanDefinitions(registry); } @Test - public void withWildcardImport() { - SimpleBeanDefinitionRegistry registry = new SimpleBeanDefinitionRegistry(); + void withWildcardImport() { Resource resource = new ClassPathResource("importPattern.xml", getClass()); - new XmlBeanDefinitionReader(registry).loadBeanDefinitions(resource); - testBeanDefinitions(registry); + reader.loadBeanDefinitions(resource); + assertBeanDefinitions(registry); } @Test - public void withInputSource() { - SimpleBeanDefinitionRegistry registry = new SimpleBeanDefinitionRegistry(); + void withInputSourceWithoutExplicitValidationMode() { InputSource resource = new InputSource(getClass().getResourceAsStream("test.xml")); - assertThatExceptionOfType(BeanDefinitionStoreException.class).isThrownBy(() -> - new XmlBeanDefinitionReader(registry).loadBeanDefinitions(resource)); + assertThatExceptionOfType(BeanDefinitionStoreException.class) + .isThrownBy(() -> reader.loadBeanDefinitions(resource)) + .withMessageStartingWith("Unable to determine validation mode for [resource loaded through SAX InputSource]:"); } @Test - public void withInputSourceAndExplicitValidationMode() { - SimpleBeanDefinitionRegistry registry = new SimpleBeanDefinitionRegistry(); + void withInputSourceAndExplicitValidationMode() { InputSource resource = new InputSource(getClass().getResourceAsStream("test.xml")); - XmlBeanDefinitionReader reader = new XmlBeanDefinitionReader(registry); reader.setValidationMode(XmlBeanDefinitionReader.VALIDATION_DTD); reader.loadBeanDefinitions(resource); - testBeanDefinitions(registry); + assertBeanDefinitions(registry); } @Test - public void withFreshInputStream() { - SimpleBeanDefinitionRegistry registry = new SimpleBeanDefinitionRegistry(); + void withClassPathResource() { Resource resource = new ClassPathResource("test.xml", getClass()); - new XmlBeanDefinitionReader(registry).loadBeanDefinitions(resource); - testBeanDefinitions(registry); + reader.loadBeanDefinitions(resource); + assertBeanDefinitions(registry); } - private void testBeanDefinitions(BeanDefinitionRegistry registry) { + private void assertBeanDefinitions(BeanDefinitionRegistry registry) { assertThat(registry.getBeanDefinitionCount()).isEqualTo(24); assertThat(registry.getBeanDefinitionNames()).hasSize(24); - assertThat(Arrays.asList(registry.getBeanDefinitionNames()).contains("rod")).isTrue(); - assertThat(Arrays.asList(registry.getBeanDefinitionNames()).contains("aliased")).isTrue(); + assertThat(registry.getBeanDefinitionNames()).contains("rod", "aliased"); assertThat(registry.containsBeanDefinition("rod")).isTrue(); assertThat(registry.containsBeanDefinition("aliased")).isTrue(); assertThat(registry.getBeanDefinition("rod").getBeanClassName()).isEqualTo(TestBean.class.getName()); assertThat(registry.getBeanDefinition("aliased").getBeanClassName()).isEqualTo(TestBean.class.getName()); assertThat(registry.isAlias("youralias")).isTrue(); - String[] aliases = registry.getAliases("aliased"); - assertThat(aliases).hasSize(2); - assertThat(ObjectUtils.containsElement(aliases, "myalias")).isTrue(); - assertThat(ObjectUtils.containsElement(aliases, "youralias")).isTrue(); + assertThat(registry.getAliases("aliased")).containsExactly("myalias", "youralias"); } @Test - public void dtdValidationAutodetect() { + void dtdValidationAutodetect() { doTestValidation("validateWithDtd.xml"); } @Test - public void xsdValidationAutodetect() { + void xsdValidationAutodetect() { doTestValidation("validateWithXsd.xml"); } @@ -137,8 +126,7 @@ public class XmlBeanDefinitionReaderTests { DefaultListableBeanFactory factory = new DefaultListableBeanFactory(); Resource resource = new ClassPathResource(resourceName, getClass()); new XmlBeanDefinitionReader(factory).loadBeanDefinitions(resource); - TestBean bean = (TestBean) factory.getBean("testBean"); - assertThat(bean).isNotNull(); + assertThat((TestBean) factory.getBean("testBean")).isNotNull(); } }