类org.springframework.test.context.ContextHierarchy源码实例Demo

下面列出了怎么用org.springframework.test.context.ContextHierarchy的API类实例代码及写法,或者点击链接到github查看源代码。

/**
 * {@inheritDoc}
 */
@SuppressWarnings("unchecked")
@Override
public final MergedContextConfiguration buildMergedContextConfiguration() {
	Class<?> testClass = getBootstrapContext().getTestClass();
	CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate = getCacheAwareContextLoaderDelegate();

	if (MetaAnnotationUtils.findAnnotationDescriptorForTypes(
			testClass, ContextConfiguration.class, ContextHierarchy.class) == null) {
		return buildDefaultMergedContextConfiguration(testClass, cacheAwareContextLoaderDelegate);
	}

	if (AnnotationUtils.findAnnotation(testClass, ContextHierarchy.class) != null) {
		Map<String, List<ContextConfigurationAttributes>> hierarchyMap =
				ContextLoaderUtils.buildContextHierarchyMap(testClass);
		MergedContextConfiguration parentConfig = null;
		MergedContextConfiguration mergedConfig = null;

		for (List<ContextConfigurationAttributes> list : hierarchyMap.values()) {
			List<ContextConfigurationAttributes> reversedList = new ArrayList<>(list);
			Collections.reverse(reversedList);

			// Don't use the supplied testClass; instead ensure that we are
			// building the MCC for the actual test class that declared the
			// configuration for the current level in the context hierarchy.
			Assert.notEmpty(reversedList, "ContextConfigurationAttributes list must not be empty");
			Class<?> declaringClass = reversedList.get(0).getDeclaringClass();

			mergedConfig = buildMergedContextConfiguration(
					declaringClass, reversedList, parentConfig, cacheAwareContextLoaderDelegate, true);
			parentConfig = mergedConfig;
		}

		// Return the last level in the context hierarchy
		Assert.state(mergedConfig != null, "No merged context configuration");
		return mergedConfig;
	}
	else {
		return buildMergedContextConfiguration(testClass,
				ContextLoaderUtils.resolveContextConfigurationAttributes(testClass),
				null, cacheAwareContextLoaderDelegate, true);
	}
}
 
/**
 * {@inheritDoc}
 */
@SuppressWarnings("unchecked")
@Override
public final MergedContextConfiguration buildMergedContextConfiguration() {
	Class<?> testClass = getBootstrapContext().getTestClass();
	CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate = getCacheAwareContextLoaderDelegate();

	if (MetaAnnotationUtils.findAnnotationDescriptorForTypes(
			testClass, ContextConfiguration.class, ContextHierarchy.class) == null) {
		return buildDefaultMergedContextConfiguration(testClass, cacheAwareContextLoaderDelegate);
	}

	if (AnnotationUtils.findAnnotation(testClass, ContextHierarchy.class) != null) {
		Map<String, List<ContextConfigurationAttributes>> hierarchyMap =
				ContextLoaderUtils.buildContextHierarchyMap(testClass);
		MergedContextConfiguration parentConfig = null;
		MergedContextConfiguration mergedConfig = null;

		for (List<ContextConfigurationAttributes> list : hierarchyMap.values()) {
			List<ContextConfigurationAttributes> reversedList = new ArrayList<>(list);
			Collections.reverse(reversedList);

			// Don't use the supplied testClass; instead ensure that we are
			// building the MCC for the actual test class that declared the
			// configuration for the current level in the context hierarchy.
			Assert.notEmpty(reversedList, "ContextConfigurationAttributes list must not be empty");
			Class<?> declaringClass = reversedList.get(0).getDeclaringClass();

			mergedConfig = buildMergedContextConfiguration(
					declaringClass, reversedList, parentConfig, cacheAwareContextLoaderDelegate, true);
			parentConfig = mergedConfig;
		}

		// Return the last level in the context hierarchy
		Assert.state(mergedConfig != null, "No merged context configuration");
		return mergedConfig;
	}
	else {
		return buildMergedContextConfiguration(testClass,
				ContextLoaderUtils.resolveContextConfigurationAttributes(testClass),
				null, cacheAwareContextLoaderDelegate, true);
	}
}
 
/**
 * {@inheritDoc}
 */
@SuppressWarnings("unchecked")
@Override
public final MergedContextConfiguration buildMergedContextConfiguration() {
	Class<?> testClass = getBootstrapContext().getTestClass();
	CacheAwareContextLoaderDelegate cacheAwareContextLoaderDelegate = getCacheAwareContextLoaderDelegate();

	if (MetaAnnotationUtils.findAnnotationDescriptorForTypes(testClass, ContextConfiguration.class,
		ContextHierarchy.class) == null) {
		if (logger.isInfoEnabled()) {
			logger.info(String.format(
				"Neither @ContextConfiguration nor @ContextHierarchy found for test class [%s]",
				testClass.getName()));
		}
		return new MergedContextConfiguration(testClass, null, null, null, null);
	}

	if (AnnotationUtils.findAnnotation(testClass, ContextHierarchy.class) != null) {
		Map<String, List<ContextConfigurationAttributes>> hierarchyMap = ContextLoaderUtils.buildContextHierarchyMap(testClass);
		MergedContextConfiguration parentConfig = null;
		MergedContextConfiguration mergedConfig = null;

		for (List<ContextConfigurationAttributes> list : hierarchyMap.values()) {
			List<ContextConfigurationAttributes> reversedList = new ArrayList<ContextConfigurationAttributes>(list);
			Collections.reverse(reversedList);

			// Don't use the supplied testClass; instead ensure that we are
			// building the MCC for the actual test class that declared the
			// configuration for the current level in the context hierarchy.
			Assert.notEmpty(reversedList, "ContextConfigurationAttributes list must not be empty");
			Class<?> declaringClass = reversedList.get(0).getDeclaringClass();

			mergedConfig = buildMergedContextConfiguration(declaringClass, reversedList, parentConfig,
				cacheAwareContextLoaderDelegate);
			parentConfig = mergedConfig;
		}

		// Return the last level in the context hierarchy
		return mergedConfig;
	}
	else {
		return buildMergedContextConfiguration(testClass,
			ContextLoaderUtils.resolveContextConfigurationAttributes(testClass), null,
			cacheAwareContextLoaderDelegate);
	}
}
 
 同包方法