org.springframework.test.context.support.DirtiesContextTestExecutionListener#org.springframework.test.context.support.DependencyInjectionTestExecutionListener源码实例Demo

下面列出了org.springframework.test.context.support.DirtiesContextTestExecutionListener#org.springframework.test.context.support.DependencyInjectionTestExecutionListener 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@Test
public void defaultListeners() {
	List<Class<?>> expected = asList(ServletTestExecutionListener.class,
			DirtiesContextBeforeModesTestExecutionListener.class, DependencyInjectionTestExecutionListener.class,
			DirtiesContextTestExecutionListener.class, TransactionalTestExecutionListener.class,
			SqlScriptsTestExecutionListener.class, EventPublishingTestExecutionListener.class);
	assertRegisteredListeners(DefaultListenersTestCase.class, expected);
}
 
/**
 * @since 4.1
 */
@Test
public void defaultListenersMergedWithCustomListenerPrepended() {
	List<Class<?>> expected = asList(QuuxTestExecutionListener.class, ServletTestExecutionListener.class,
			DirtiesContextBeforeModesTestExecutionListener.class, DependencyInjectionTestExecutionListener.class,
			DirtiesContextTestExecutionListener.class, TransactionalTestExecutionListener.class,
			SqlScriptsTestExecutionListener.class, EventPublishingTestExecutionListener.class);
	assertRegisteredListeners(MergedDefaultListenersWithCustomListenerPrependedTestCase.class, expected);
}
 
/**
 * @since 4.1
 */
@Test
public void defaultListenersMergedWithCustomListenerAppended() {
	List<Class<?>> expected = asList(ServletTestExecutionListener.class,
			DirtiesContextBeforeModesTestExecutionListener.class, DependencyInjectionTestExecutionListener.class,
			DirtiesContextTestExecutionListener.class, TransactionalTestExecutionListener.class,
			SqlScriptsTestExecutionListener.class, EventPublishingTestExecutionListener.class,
			BazTestExecutionListener.class);
	assertRegisteredListeners(MergedDefaultListenersWithCustomListenerAppendedTestCase.class, expected);
}
 
/**
 * @since 4.1
 */
@Test
public void defaultListenersMergedWithCustomListenerInserted() {
	List<Class<?>> expected = asList(ServletTestExecutionListener.class,
			DirtiesContextBeforeModesTestExecutionListener.class, DependencyInjectionTestExecutionListener.class,
			BarTestExecutionListener.class, DirtiesContextTestExecutionListener.class,
			TransactionalTestExecutionListener.class, SqlScriptsTestExecutionListener.class,
			EventPublishingTestExecutionListener.class);
	assertRegisteredListeners(MergedDefaultListenersWithCustomListenerInsertedTestCase.class, expected);
}
 
@Test
public void defaultListeners() {
	List<Class<?>> expected = asList(ServletTestExecutionListener.class,
			DirtiesContextBeforeModesTestExecutionListener.class, DependencyInjectionTestExecutionListener.class,
			DirtiesContextTestExecutionListener.class, TransactionalTestExecutionListener.class,
			SqlScriptsTestExecutionListener.class);
	assertRegisteredListeners(DefaultListenersTestCase.class, expected);
}
 
/**
 * @since 4.1
 */
@Test
public void defaultListenersMergedWithCustomListenerPrepended() {
	List<Class<?>> expected = asList(QuuxTestExecutionListener.class, ServletTestExecutionListener.class,
			DirtiesContextBeforeModesTestExecutionListener.class, DependencyInjectionTestExecutionListener.class,
			DirtiesContextTestExecutionListener.class, TransactionalTestExecutionListener.class,
			SqlScriptsTestExecutionListener.class);
	assertRegisteredListeners(MergedDefaultListenersWithCustomListenerPrependedTestCase.class, expected);
}
 
/**
 * @since 4.1
 */
@Test
public void defaultListenersMergedWithCustomListenerAppended() {
	List<Class<?>> expected = asList(ServletTestExecutionListener.class,
			DirtiesContextBeforeModesTestExecutionListener.class, DependencyInjectionTestExecutionListener.class,
			DirtiesContextTestExecutionListener.class, TransactionalTestExecutionListener.class,
			SqlScriptsTestExecutionListener.class, BazTestExecutionListener.class);
	assertRegisteredListeners(MergedDefaultListenersWithCustomListenerAppendedTestCase.class, expected);
}
 
/**
 * @since 4.1
 */
@Test
public void defaultListenersMergedWithCustomListenerInserted() {
	List<Class<?>> expected = asList(ServletTestExecutionListener.class,
			DirtiesContextBeforeModesTestExecutionListener.class, DependencyInjectionTestExecutionListener.class,
			BarTestExecutionListener.class, DirtiesContextTestExecutionListener.class,
			TransactionalTestExecutionListener.class, SqlScriptsTestExecutionListener.class);
	assertRegisteredListeners(MergedDefaultListenersWithCustomListenerInsertedTestCase.class, expected);
}
 
源代码9 项目: eventeum   文件: SpringRestarter.java
private void reinjectDependencies()  {
    testContextManager
            .getTestExecutionListeners()
            .stream()
            .filter(listener -> listener instanceof DependencyInjectionTestExecutionListener)
            .findFirst()
            .ifPresent(listener -> {
                try {
                    listener.prepareTestInstance(testContextManager.getTestContext());
                } catch (Exception e) {
                    e.printStackTrace();
                }
            });
}
 
@Test
public void defaultListeners() {
	List<Class<?>> expected = asList(ServletTestExecutionListener.class,
		DirtiesContextBeforeModesTestExecutionListener.class, DependencyInjectionTestExecutionListener.class,
		DirtiesContextTestExecutionListener.class, TransactionalTestExecutionListener.class,
		SqlScriptsTestExecutionListener.class);
	assertRegisteredListeners(DefaultListenersTestCase.class, expected);
}
 
/**
 * @since 4.1
 */
@Test
public void defaultListenersMergedWithCustomListenerPrepended() {
	List<Class<?>> expected = asList(QuuxTestExecutionListener.class, ServletTestExecutionListener.class,
		DirtiesContextBeforeModesTestExecutionListener.class, DependencyInjectionTestExecutionListener.class,
		DirtiesContextTestExecutionListener.class, TransactionalTestExecutionListener.class,
		SqlScriptsTestExecutionListener.class);
	assertRegisteredListeners(MergedDefaultListenersWithCustomListenerPrependedTestCase.class, expected);
}
 
/**
 * @since 4.1
 */
@Test
public void defaultListenersMergedWithCustomListenerAppended() {
	List<Class<?>> expected = asList(ServletTestExecutionListener.class,
		DirtiesContextBeforeModesTestExecutionListener.class, DependencyInjectionTestExecutionListener.class,
		DirtiesContextTestExecutionListener.class, TransactionalTestExecutionListener.class,
		SqlScriptsTestExecutionListener.class, BazTestExecutionListener.class);
	assertRegisteredListeners(MergedDefaultListenersWithCustomListenerAppendedTestCase.class, expected);
}
 
/**
 * @since 4.1
 */
@Test
public void defaultListenersMergedWithCustomListenerInserted() {
	List<Class<?>> expected = asList(ServletTestExecutionListener.class,
		DirtiesContextBeforeModesTestExecutionListener.class, DependencyInjectionTestExecutionListener.class,
		BarTestExecutionListener.class, DirtiesContextTestExecutionListener.class,
		TransactionalTestExecutionListener.class, SqlScriptsTestExecutionListener.class);
	assertRegisteredListeners(MergedDefaultListenersWithCustomListenerInsertedTestCase.class, expected);
}
 
/**
 * If the {@link #RESET_REQUEST_CONTEXT_HOLDER_ATTRIBUTE} in the supplied
 * {@code TestContext} has a value of {@link Boolean#TRUE}, this method will
 * (1) clean up thread-local state after each test method by {@linkplain
 * RequestContextHolder#resetRequestAttributes() resetting} Spring Web's
 * {@code RequestContextHolder} and (2) ensure that new mocks are injected
 * into the test instance for subsequent tests by setting the
 * {@link DependencyInjectionTestExecutionListener#REINJECT_DEPENDENCIES_ATTRIBUTE}
 * in the test context to {@code true}.
 * <p>The {@link #RESET_REQUEST_CONTEXT_HOLDER_ATTRIBUTE} and
 * {@link #POPULATED_REQUEST_CONTEXT_HOLDER_ATTRIBUTE} will be subsequently
 * removed from the test context, regardless of their values.
 * @see TestExecutionListener#afterTestMethod(TestContext)
 */
@Override
public void afterTestMethod(TestContext testContext) throws Exception {
	if (Boolean.TRUE.equals(testContext.getAttribute(RESET_REQUEST_CONTEXT_HOLDER_ATTRIBUTE))) {
		if (logger.isDebugEnabled()) {
			logger.debug(String.format("Resetting RequestContextHolder for test context %s.", testContext));
		}
		RequestContextHolder.resetRequestAttributes();
		testContext.setAttribute(DependencyInjectionTestExecutionListener.REINJECT_DEPENDENCIES_ATTRIBUTE,
			Boolean.TRUE);
	}
	testContext.removeAttribute(POPULATED_REQUEST_CONTEXT_HOLDER_ATTRIBUTE);
	testContext.removeAttribute(RESET_REQUEST_CONTEXT_HOLDER_ATTRIBUTE);
}
 
/**
 * If the {@link #RESET_REQUEST_CONTEXT_HOLDER_ATTRIBUTE} in the supplied
 * {@code TestContext} has a value of {@link Boolean#TRUE}, this method will
 * (1) clean up thread-local state after each test method by {@linkplain
 * RequestContextHolder#resetRequestAttributes() resetting} Spring Web's
 * {@code RequestContextHolder} and (2) ensure that new mocks are injected
 * into the test instance for subsequent tests by setting the
 * {@link DependencyInjectionTestExecutionListener#REINJECT_DEPENDENCIES_ATTRIBUTE}
 * in the test context to {@code true}.
 * <p>The {@link #RESET_REQUEST_CONTEXT_HOLDER_ATTRIBUTE} and
 * {@link #POPULATED_REQUEST_CONTEXT_HOLDER_ATTRIBUTE} will be subsequently
 * removed from the test context, regardless of their values.
 * @see TestExecutionListener#afterTestMethod(TestContext)
 */
@Override
public void afterTestMethod(TestContext testContext) throws Exception {
	if (Boolean.TRUE.equals(testContext.getAttribute(RESET_REQUEST_CONTEXT_HOLDER_ATTRIBUTE))) {
		if (logger.isDebugEnabled()) {
			logger.debug(String.format("Resetting RequestContextHolder for test context %s.", testContext));
		}
		RequestContextHolder.resetRequestAttributes();
		testContext.setAttribute(DependencyInjectionTestExecutionListener.REINJECT_DEPENDENCIES_ATTRIBUTE,
			Boolean.TRUE);
	}
	testContext.removeAttribute(POPULATED_REQUEST_CONTEXT_HOLDER_ATTRIBUTE);
	testContext.removeAttribute(RESET_REQUEST_CONTEXT_HOLDER_ATTRIBUTE);
}
 
/**
 * If the {@link #RESET_REQUEST_CONTEXT_HOLDER_ATTRIBUTE} in the supplied
 * {@code TestContext} has a value of {@link Boolean#TRUE}, this method will
 * (1) clean up thread-local state after each test method by {@linkplain
 * RequestContextHolder#resetRequestAttributes() resetting} Spring Web's
 * {@code RequestContextHolder} and (2) ensure that new mocks are injected
 * into the test instance for subsequent tests by setting the
 * {@link DependencyInjectionTestExecutionListener#REINJECT_DEPENDENCIES_ATTRIBUTE}
 * in the test context to {@code true}.
 *
 * <p>The {@link #RESET_REQUEST_CONTEXT_HOLDER_ATTRIBUTE} and
 * {@link #POPULATED_REQUEST_CONTEXT_HOLDER_ATTRIBUTE} will be subsequently
 * removed from the test context, regardless of their values.
 *
 * @see TestExecutionListener#afterTestMethod(TestContext)
 */
@Override
public void afterTestMethod(TestContext testContext) throws Exception {
	if (Boolean.TRUE.equals(testContext.getAttribute(RESET_REQUEST_CONTEXT_HOLDER_ATTRIBUTE))) {
		if (logger.isDebugEnabled()) {
			logger.debug(String.format("Resetting RequestContextHolder for test context %s.", testContext));
		}
		RequestContextHolder.resetRequestAttributes();
		testContext.setAttribute(DependencyInjectionTestExecutionListener.REINJECT_DEPENDENCIES_ATTRIBUTE,
			Boolean.TRUE);
	}
	testContext.removeAttribute(POPULATED_REQUEST_CONTEXT_HOLDER_ATTRIBUTE);
	testContext.removeAttribute(RESET_REQUEST_CONTEXT_HOLDER_ATTRIBUTE);
}
 
/**
 * Marks the {@link ApplicationContext application context} of the supplied {@link TestContext test context} as
 * {@link TestContext#markApplicationContextDirty() dirty}, and sets the
 * {@link DependencyInjectionTestExecutionListener#REINJECT_DEPENDENCIES_ATTRIBUTE REINJECT_DEPENDENCIES_ATTRIBUTE}
 * in the test context to <code>true</code> .
 */
protected void reloadContext(TestContext testContext) {
	testContext.markApplicationContextDirty();
	testContext
			.setAttribute(DependencyInjectionTestExecutionListener.REINJECT_DEPENDENCIES_ATTRIBUTE, Boolean.TRUE);
}