|
Spring Framework example source code file (TestContext.java)
The Spring Framework TestContext.java source code/* * Copyright 2002-2008 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. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.springframework.test.context; import java.io.Serializable; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.BeanUtils; import org.springframework.context.ApplicationContext; import org.springframework.core.AttributeAccessorSupport; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.core.style.ToStringCreator; import org.springframework.util.Assert; import org.springframework.util.ObjectUtils; /** * TestContext encapsulates the context in which a test is executed, agnostic of * the actual testing framework in use. * * @author Sam Brannen * @author Juergen Hoeller * @since 2.5 */ public class TestContext extends AttributeAccessorSupport { private static final String DEFAULT_CONTEXT_LOADER_CLASS_NAME = "org.springframework.test.context.support.GenericXmlContextLoader"; private static final long serialVersionUID = -5827157174866681233L; private static final Log logger = LogFactory.getLog(TestContext.class); private final ContextCache contextCache; private final ContextLoader contextLoader; private final String[] locations; private final Class<?> testClass; private Object testInstance; private Method testMethod; private Throwable testException; /** * Construct a new test context for the supplied {@link Class test class} * and {@link ContextCache context cache} and parses the corresponding * {@link ContextConfiguration @ContextConfiguration} annotation, if present. * @param testClass the {@link Class} object corresponding to the test class * for which the test context should be constructed (must not be <code>null) * @param contextCache the context cache from which the constructed test context * should retrieve application contexts (must not be <code>null) */ @SuppressWarnings("unchecked") TestContext(Class<?> testClass, ContextCache contextCache) { Assert.notNull(testClass, "Test class must not be null"); Assert.notNull(contextCache, "ContextCache must not be null"); ContextConfiguration contextConfiguration = testClass.getAnnotation(ContextConfiguration.class); String[] locations = null; ContextLoader contextLoader = null; if (contextConfiguration == null) { if (logger.isInfoEnabled()) { logger.info("@ContextConfiguration not found for class [" + testClass + "]"); } } else { if (logger.isTraceEnabled()) { logger.trace("Retrieved @ContextConfiguration [" + contextConfiguration + "] for class [" + testClass + "]"); } Class<? extends ContextLoader> contextLoaderClass = contextConfiguration.loader(); if (ContextLoader.class.equals(contextLoaderClass)) { try { contextLoaderClass = (Class<? extends ContextLoader>) getClass().getClassLoader().loadClass( DEFAULT_CONTEXT_LOADER_CLASS_NAME); } catch (ClassNotFoundException ex) { throw new IllegalStateException("Could not load default ContextLoader class [" + DEFAULT_CONTEXT_LOADER_CLASS_NAME + "]. Specify @ContextConfiguration's 'loader' " + "attribute or make the default loader class available."); } } contextLoader = (ContextLoader) BeanUtils.instantiateClass(contextLoaderClass); locations = retrieveContextLocations(contextLoader, testClass); } this.testClass = testClass; this.contextCache = contextCache; this.contextLoader = contextLoader; this.locations = locations; } /** * Retrieve {@link ApplicationContext} resource locations for the supplied * {@link Class class}, using the supplied {@link ContextLoader} to * {@link ContextLoader#processLocations(Class, String...) process} the * locations. * <p>Note that the * {@link ContextConfiguration#inheritLocations() inheritLocations} flag of * {@link ContextConfiguration @ContextConfiguration} will be taken into * consideration. Specifically, if the <code>inheritLocations flag * is set to <code>true, locations defined in the annotated class * will be appended to the locations defined in superclasses. * @param contextLoader the ContextLoader to use for processing the locations * (must not be <code>null) * @param clazz the class for which to retrieve the resource locations * (must not be <code>null) * @return the list of ApplicationContext resource locations for the specified * class, including locations from superclasses if appropriate * @throws IllegalArgumentException if {@link ContextConfiguration @ContextConfiguration} * is not <em>present on the supplied class */ private String[] retrieveContextLocations(ContextLoader contextLoader, Class<?> clazz) { Assert.notNull(contextLoader, "ContextLoader must not be null"); Assert.notNull(clazz, "Class must not be null"); List<String> locationsList = new ArrayList Other Spring Framework examples (source code examples)Here is a short list of links related to this Spring Framework TestContext.java source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.