Introduced NoUniqueBeanDefinitionException as a dedicated subclass of NoSuchBeanDefinitionException

Issue: SPR-10194
This commit is contained in:
Juergen Hoeller 2013-01-22 23:28:38 +01:00 committed by unknown
parent 0efdd3d566
commit ece727bf57
1 changed files with 11 additions and 7 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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.
@ -17,8 +17,10 @@
package org.springframework.context.annotation;
import java.util.Map;
import java.util.regex.Pattern;
import org.junit.Test;
import org.springframework.beans.factory.FactoryBean;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.beans.factory.annotation.Autowired;
@ -27,7 +29,7 @@ import org.springframework.context.annotation6.ComponentForScanning;
import org.springframework.context.annotation6.ConfigForScanning;
import org.springframework.context.annotation6.Jsr330NamedForScanning;
import static java.lang.String.*;
import static java.lang.String.format;
import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import static org.springframework.util.StringUtils.*;
@ -120,13 +122,14 @@ public class AnnotationConfigApplicationContextTests {
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(Config.class);
// attempt to retrieve a bean that does not exist
Class<?> targetType = java.util.regex.Pattern.class;
Class<?> targetType = Pattern.class;
try {
Object bean = context.getBean(targetType);
fail("should have thrown NoSuchBeanDefinitionException, instead got: " + bean);
} catch (NoSuchBeanDefinitionException ex) {
}
catch (NoSuchBeanDefinitionException ex) {
assertThat(ex.getMessage(), containsString(
format("No unique bean of type [%s] is defined", targetType.getName())));
format("No qualifying bean of type [%s] is defined", targetType.getName())));
}
}
@ -137,10 +140,11 @@ public class AnnotationConfigApplicationContextTests {
try {
context.getBean(TestBean.class);
} catch (RuntimeException ex) {
}
catch (NoSuchBeanDefinitionException ex) {
assertThat(ex.getMessage(),
allOf(
containsString("No unique bean of type [" + TestBean.class.getName() + "] is defined"),
containsString("No qualifying bean of type [" + TestBean.class.getName() + "] is defined"),
containsString("tb1"),
containsString("tb2")
)