Polish XmlBeanDefinitionReaderTests
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user