Polishing

This commit is contained in:
Juergen Hoeller 2013-12-11 22:58:23 +01:00
parent 106a973a4d
commit aa6e6c1349
2 changed files with 18 additions and 19 deletions

View File

@ -13,21 +13,19 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.context.annotation; package org.springframework.context.annotation;
import org.junit.Test;
import org.springframework.beans.factory.parsing.BeanDefinitionParsingException;
import org.springframework.tests.sample.beans.TestBean;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import org.junit.Test;
import org.springframework.beans.factory.parsing.BeanDefinitionParsingException;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ConfigurationClassParser;
import org.springframework.context.annotation.Import;
import org.springframework.tests.sample.beans.TestBean;
/** /**
* TCK-style unit tests for handling circular use of the {@link Import} annotation. Explore * TCK-style unit tests for handling circular use of the {@link Import} annotation.
* subclass hierarchy for specific concrete implementations. * Explore the subclass hierarchy for specific concrete implementations.
* *
* @author Chris Beams * @author Chris Beams
*/ */
@ -37,23 +35,23 @@ public abstract class AbstractCircularImportDetectionTests {
protected abstract String loadAsConfigurationSource(Class<?> clazz) throws Exception; protected abstract String loadAsConfigurationSource(Class<?> clazz) throws Exception;
@Test @Test
public void simpleCircularImportIsDetected() throws Exception { public void simpleCircularImportIsDetected() throws Exception {
boolean threw = false; boolean threw = false;
try { try {
newParser().parse(loadAsConfigurationSource(A.class), "A"); newParser().parse(loadAsConfigurationSource(A.class), "A");
} catch (BeanDefinitionParsingException ex) { }
catch (BeanDefinitionParsingException ex) {
assertTrue("Wrong message. Got: " + ex.getMessage(), assertTrue("Wrong message. Got: " + ex.getMessage(),
ex.getMessage().contains( ex.getMessage().contains(
"Illegal attempt by @Configuration class 'AbstractCircularImportDetectionTests.B' " + "Illegal attempt by @Configuration class 'AbstractCircularImportDetectionTests.B' " +
"to import class 'AbstractCircularImportDetectionTests.A'")); "to import class 'AbstractCircularImportDetectionTests.A'"));
threw = true; threw = true;
} }
assertTrue(threw); assertTrue(threw);
} }
@Test @Test
public void complexCircularImportIsDetected() throws Exception { public void complexCircularImportIsDetected() throws Exception {
boolean threw = false; boolean threw = false;
@ -67,10 +65,10 @@ public abstract class AbstractCircularImportDetectionTests {
"to import class 'AbstractCircularImportDetectionTests.Z'")); "to import class 'AbstractCircularImportDetectionTests.Z'"));
threw = true; threw = true;
} }
assertTrue(threw); assertTrue(threw);
} }
@Configuration @Configuration
@Import(B.class) @Import(B.class)
static class A { static class A {

View File

@ -13,6 +13,7 @@
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package org.springframework.context.annotation; package org.springframework.context.annotation;
import org.springframework.beans.factory.parsing.FailFastProblemReporter; import org.springframework.beans.factory.parsing.FailFastProblemReporter;
@ -22,12 +23,12 @@ import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.type.classreading.CachingMetadataReaderFactory; import org.springframework.core.type.classreading.CachingMetadataReaderFactory;
/** /**
* Unit test proving that ASM-based {@link ConfigurationClassParser} correctly detects circular use of * Unit test proving that ASM-based {@link ConfigurationClassParser} correctly detects circular
* the {@link Import @Import} annotation. * use of the {@link Import @Import} annotation.
* *
* <p>While this test is the only subclass of {@link AbstractCircularImportDetectionTests}, the * <p>While this test is the only subclass of {@link AbstractCircularImportDetectionTests},
* hierarchy remains in place in case a JDT-based ConfigurationParser implementation needs to be * the hierarchy remains in place in case a JDT-based ConfigurationParser implementation
* developed. * needs to be developed.
* *
* @author Chris Beams * @author Chris Beams
*/ */