org.springframework.test.context.TestContext#getApplicationContext ( )源码实例Demo

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

源代码1 项目: spring-analysis-note   文件: ContextCacheTests.java
@Test
public void removeContextHierarchyCacheLevel1() {

	// Load Level 3-A
	TestContext testContext3a = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3aTestCase.class, contextCache);
	testContext3a.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A", 3, 0, 3);
	assertParentContextCount(2);

	// Load Level 3-B
	TestContext testContext3b = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3bTestCase.class, contextCache);
	testContext3b.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A and B", 4, 1, 4);
	assertParentContextCount(2);

	// Remove Level 1
	// Should also remove Levels 2, 3-A, and 3-B, leaving nothing.
	contextCache.remove(getMergedContextConfiguration(testContext3a).getParent().getParent(),
		HierarchyMode.CURRENT_LEVEL);
	assertContextCacheStatistics(contextCache, "removed level 1", 0, 1, 4);
	assertParentContextCount(0);
}
 
源代码2 项目: spring4-understanding   文件: ContextCacheTests.java
@Test
public void removeContextHierarchyCacheLevel1WithExhaustiveMode() {

	// Load Level 3-A
	TestContext testContext3a = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3aTestCase.class, contextCache);
	testContext3a.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A", 3, 0, 3);
	assertParentContextCount(2);

	// Load Level 3-B
	TestContext testContext3b = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3bTestCase.class, contextCache);
	testContext3b.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A and B", 4, 1, 4);
	assertParentContextCount(2);

	// Remove Level 1
	// Should also remove Levels 2, 3-A, and 3-B, leaving nothing.
	contextCache.remove(getMergedContextConfiguration(testContext3a).getParent().getParent(),
		HierarchyMode.EXHAUSTIVE);
	assertContextCacheStatistics(contextCache, "removed level 1", 0, 1, 4);
	assertParentContextCount(0);
}
 
源代码3 项目: spring-analysis-note   文件: ContextCacheTests.java
@Test
public void removeContextHierarchyCacheLevel2WithExhaustiveMode() {

	// Load Level 3-A
	TestContext testContext3a = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3aTestCase.class, contextCache);
	testContext3a.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A", 3, 0, 3);
	assertParentContextCount(2);

	// Load Level 3-B
	TestContext testContext3b = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3bTestCase.class, contextCache);
	testContext3b.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A and B", 4, 1, 4);
	assertParentContextCount(2);

	// Remove Level 2
	// Should wipe the cache
	contextCache.remove(getMergedContextConfiguration(testContext3a).getParent(), HierarchyMode.EXHAUSTIVE);
	assertContextCacheStatistics(contextCache, "removed level 2", 0, 1, 4);
	assertParentContextCount(0);
}
 
源代码4 项目: java-technology-stack   文件: ContextCacheTests.java
@Test
public void removeContextHierarchyCacheLevel1() {

	// Load Level 3-A
	TestContext testContext3a = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3aTestCase.class, contextCache);
	testContext3a.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A", 3, 0, 3);
	assertParentContextCount(2);

	// Load Level 3-B
	TestContext testContext3b = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3bTestCase.class, contextCache);
	testContext3b.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A and B", 4, 1, 4);
	assertParentContextCount(2);

	// Remove Level 1
	// Should also remove Levels 2, 3-A, and 3-B, leaving nothing.
	contextCache.remove(getMergedContextConfiguration(testContext3a).getParent().getParent(),
		HierarchyMode.CURRENT_LEVEL);
	assertContextCacheStatistics(contextCache, "removed level 1", 0, 1, 4);
	assertParentContextCount(0);
}
 
源代码5 项目: java-technology-stack   文件: ContextCacheTests.java
@Test
public void removeContextHierarchyCacheLevel1WithExhaustiveMode() {

	// Load Level 3-A
	TestContext testContext3a = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3aTestCase.class, contextCache);
	testContext3a.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A", 3, 0, 3);
	assertParentContextCount(2);

	// Load Level 3-B
	TestContext testContext3b = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3bTestCase.class, contextCache);
	testContext3b.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A and B", 4, 1, 4);
	assertParentContextCount(2);

	// Remove Level 1
	// Should also remove Levels 2, 3-A, and 3-B, leaving nothing.
	contextCache.remove(getMergedContextConfiguration(testContext3a).getParent().getParent(),
		HierarchyMode.EXHAUSTIVE);
	assertContextCacheStatistics(contextCache, "removed level 1", 0, 1, 4);
	assertParentContextCount(0);
}
 
源代码6 项目: java-technology-stack   文件: ContextCacheTests.java
@Test
public void removeContextHierarchyCacheLevel2() {

	// Load Level 3-A
	TestContext testContext3a = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3aTestCase.class, contextCache);
	testContext3a.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A", 3, 0, 3);
	assertParentContextCount(2);

	// Load Level 3-B
	TestContext testContext3b = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3bTestCase.class, contextCache);
	testContext3b.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A and B", 4, 1, 4);
	assertParentContextCount(2);

	// Remove Level 2
	// Should also remove Levels 3-A and 3-B, leaving only Level 1 as a context in the
	// cache but also removing the Level 1 hierarchy since all children have been
	// removed.
	contextCache.remove(getMergedContextConfiguration(testContext3a).getParent(), HierarchyMode.CURRENT_LEVEL);
	assertContextCacheStatistics(contextCache, "removed level 2", 1, 1, 4);
	assertParentContextCount(0);
}
 
源代码7 项目: restdocs-wiremock   文件: WireMockListener.java
@Override
public void beforeTestMethod(TestContext testContext) throws Exception {
	if(wireMockAnnotation == null) {
		return;
	}
	WireMockTest methodAnnotation = testContext.getTestMethod().getAnnotation(WireMockTest.class);
	
	String stubPath = "";
	if(this.wireMockAnnotation.stubPath() != null) {
		stubPath = this.wireMockAnnotation.stubPath();
	}
	if (methodAnnotation != null && methodAnnotation.stubPath() != null) {
		stubPath += "/" + methodAnnotation.stubPath();
	}

	ConfigurableApplicationContext applicationContext = (ConfigurableApplicationContext) testContext
			.getApplicationContext();

	WireMockServer server = applicationContext.getBean(WireMockServer.class);
	server.resetMappings();
	if(! stubPath.isEmpty()) {
		server.loadMappingsUsing(new JsonFileMappingsSource(new ClasspathFileSource(stubPath)));
	}
}
 
源代码8 项目: spring4-understanding   文件: ContextCacheTests.java
@Test
public void removeContextHierarchyCacheLevel1() {

	// Load Level 3-A
	TestContext testContext3a = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3aTestCase.class, contextCache);
	testContext3a.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A", 3, 0, 3);
	assertParentContextCount(2);

	// Load Level 3-B
	TestContext testContext3b = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3bTestCase.class, contextCache);
	testContext3b.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A and B", 4, 1, 4);
	assertParentContextCount(2);

	// Remove Level 1
	// Should also remove Levels 2, 3-A, and 3-B, leaving nothing.
	contextCache.remove(getMergedContextConfiguration(testContext3a).getParent().getParent(),
		HierarchyMode.CURRENT_LEVEL);
	assertContextCacheStatistics(contextCache, "removed level 1", 0, 1, 4);
	assertParentContextCount(0);
}
 
private void setUpRequestContextIfNecessary(TestContext testContext) {
	if (!isActivated(testContext) || alreadyPopulatedRequestContextHolder(testContext)) {
		return;
	}

	ApplicationContext context = testContext.getApplicationContext();

	if (context instanceof WebApplicationContext) {
		WebApplicationContext wac = (WebApplicationContext) context;
		ServletContext servletContext = wac.getServletContext();
		Assert.state(servletContext instanceof MockServletContext, () -> String.format(
					"The WebApplicationContext for test context %s must be configured with a MockServletContext.",
					testContext));

		if (logger.isDebugEnabled()) {
			logger.debug(String.format(
					"Setting up MockHttpServletRequest, MockHttpServletResponse, ServletWebRequest, and RequestContextHolder for test context %s.",
					testContext));
		}

		MockServletContext mockServletContext = (MockServletContext) servletContext;
		MockHttpServletRequest request = new MockHttpServletRequest(mockServletContext);
		request.setAttribute(CREATED_BY_THE_TESTCONTEXT_FRAMEWORK, Boolean.TRUE);
		MockHttpServletResponse response = new MockHttpServletResponse();
		ServletWebRequest servletWebRequest = new ServletWebRequest(request, response);

		RequestContextHolder.setRequestAttributes(servletWebRequest);
		testContext.setAttribute(POPULATED_REQUEST_CONTEXT_HOLDER_ATTRIBUTE, Boolean.TRUE);
		testContext.setAttribute(RESET_REQUEST_CONTEXT_HOLDER_ATTRIBUTE, Boolean.TRUE);

		if (wac instanceof ConfigurableApplicationContext) {
			@SuppressWarnings("resource")
			ConfigurableApplicationContext configurableApplicationContext = (ConfigurableApplicationContext) wac;
			ConfigurableListableBeanFactory bf = configurableApplicationContext.getBeanFactory();
			bf.registerResolvableDependency(MockHttpServletResponse.class, response);
			bf.registerResolvableDependency(ServletWebRequest.class, servletWebRequest);
		}
	}
}
 
源代码10 项目: restdocs-wiremock   文件: WireMockListener.java
@Override
public void afterTestMethod(TestContext testContext) throws Exception {
	if(wireMockAnnotation == null) {
		return;
	}
	ConfigurableApplicationContext applicationContext = (ConfigurableApplicationContext) testContext
			.getApplicationContext();

	applicationContext.getBean(WireMockServer.class).resetToDefaultMappings();
}
 
源代码11 项目: spring-analysis-note   文件: ContextCacheTests.java
@Test
public void removeContextHierarchyCacheLevel3Then2() {

	// Load Level 3-A
	TestContext testContext3a = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3aTestCase.class, contextCache);
	testContext3a.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A", 3, 0, 3);
	assertParentContextCount(2);

	// Load Level 3-B
	TestContext testContext3b = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3bTestCase.class, contextCache);
	testContext3b.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A and B", 4, 1, 4);
	assertParentContextCount(2);

	// Remove Level 3-A
	contextCache.remove(getMergedContextConfiguration(testContext3a), HierarchyMode.CURRENT_LEVEL);
	assertContextCacheStatistics(contextCache, "removed level 3-A", 3, 1, 4);
	assertParentContextCount(2);

	// Remove Level 2
	// Should also remove Level 3-B, leaving only Level 1.
	contextCache.remove(getMergedContextConfiguration(testContext3b).getParent(), HierarchyMode.CURRENT_LEVEL);
	assertContextCacheStatistics(contextCache, "removed level 2", 1, 1, 4);
	assertParentContextCount(0);
}
 
private boolean applicationContextBroken(TestContext testContext) {
	try {
		testContext.getApplicationContext();
		return false;
	}
	catch (Exception ex) {
		if (log.isDebugEnabled()) {
			log.debug("Application context is broken due to", ex);
		}
		return true;
	}
}
 
源代码13 项目: java-technology-stack   文件: ContextCacheTests.java
@Test
public void removeContextHierarchyCacheLevel3Then2() {

	// Load Level 3-A
	TestContext testContext3a = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3aTestCase.class, contextCache);
	testContext3a.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A", 3, 0, 3);
	assertParentContextCount(2);

	// Load Level 3-B
	TestContext testContext3b = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3bTestCase.class, contextCache);
	testContext3b.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A and B", 4, 1, 4);
	assertParentContextCount(2);

	// Remove Level 3-A
	contextCache.remove(getMergedContextConfiguration(testContext3a), HierarchyMode.CURRENT_LEVEL);
	assertContextCacheStatistics(contextCache, "removed level 3-A", 3, 1, 4);
	assertParentContextCount(2);

	// Remove Level 2
	// Should also remove Level 3-B, leaving only Level 1.
	contextCache.remove(getMergedContextConfiguration(testContext3b).getParent(), HierarchyMode.CURRENT_LEVEL);
	assertContextCacheStatistics(contextCache, "removed level 2", 1, 1, 4);
	assertParentContextCount(0);
}
 
源代码14 项目: java-technology-stack   文件: ContextCacheTests.java
@Test
public void removeContextHierarchyCacheLevel3Then2WithExhaustiveMode() {

	// Load Level 3-A
	TestContext testContext3a = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3aTestCase.class, contextCache);
	testContext3a.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A", 3, 0, 3);
	assertParentContextCount(2);

	// Load Level 3-B
	TestContext testContext3b = TestContextTestUtils.buildTestContext(
		ClassHierarchyContextHierarchyLevel3bTestCase.class, contextCache);
	testContext3b.getApplicationContext();
	assertContextCacheStatistics(contextCache, "level 3, A and B", 4, 1, 4);
	assertParentContextCount(2);

	// Remove Level 3-A
	// Should wipe the cache.
	contextCache.remove(getMergedContextConfiguration(testContext3a), HierarchyMode.EXHAUSTIVE);
	assertContextCacheStatistics(contextCache, "removed level 3-A", 0, 1, 4);
	assertParentContextCount(0);

	// Remove Level 2
	// Should not actually do anything since the cache was cleared in the
	// previous step. So the stats should remain the same.
	contextCache.remove(getMergedContextConfiguration(testContext3b).getParent(), HierarchyMode.EXHAUSTIVE);
	assertContextCacheStatistics(contextCache, "removed level 2", 0, 1, 4);
	assertParentContextCount(0);
}
 
protected synchronized void optimizedDbReset(TestContext testContext, AnnotatedElement element, FlywayTest annotation) throws Exception {
    try {
        if (annotation != null && annotation.invokeCleanDB() && annotation.invokeMigrateDB()
                && (!flywayBaselineAttributePresent || !annotation.invokeBaselineDB())) {

            ApplicationContext applicationContext = testContext.getApplicationContext();
            Flyway flywayBean = getFlywayBean(applicationContext, annotation);

            if (flywayBean != null) {
                FlywayDataSourceContext dataSourceContext = getDataSourceContext(applicationContext, flywayBean);

                if (dataSourceContext != null) {

                    dataSourceContext.getTarget(); // wait for completion of running flyway migration
                    DataSource dataSource = reloadDataSource(dataSourceContext, flywayBean, annotation);
                    EmbeddedDatabaseReporter.reportDataSource(dataSource, element);

                    FlywayTest adjustedAnnotation = copyAnnotation(annotation, false, false, true);
                    originalDbReset(testContext, adjustedAnnotation);

                    return;
                }
            }
        }

        originalDbReset(testContext, annotation);
    } catch (NoSuchMethodError e) {
        logger.error("\n\nHINT: Check that you are using compatible versions of org.flywaydb:flyway-core and org.flywaydb.flyway-test-extensions:flyway-spring-test dependencies!!!\n");
        throw e;
    }
}
 
private void setUpRequestContextIfNecessary(TestContext testContext) {
	if (notAnnotatedWithWebAppConfiguration(testContext) || alreadyPopulatedRequestContextHolder(testContext)) {
		return;
	}

	ApplicationContext context = testContext.getApplicationContext();

	if (context instanceof WebApplicationContext) {
		WebApplicationContext wac = (WebApplicationContext) context;
		ServletContext servletContext = wac.getServletContext();
		Assert.state(servletContext instanceof MockServletContext, String.format(
			"The WebApplicationContext for test context %s must be configured with a MockServletContext.",
			testContext));

		if (logger.isDebugEnabled()) {
			logger.debug(String.format(
				"Setting up MockHttpServletRequest, MockHttpServletResponse, ServletWebRequest, and RequestContextHolder for test context %s.",
				testContext));
		}

		MockServletContext mockServletContext = (MockServletContext) servletContext;
		MockHttpServletRequest request = new MockHttpServletRequest(mockServletContext);
		request.setAttribute(CREATED_BY_THE_TESTCONTEXT_FRAMEWORK, Boolean.TRUE);
		MockHttpServletResponse response = new MockHttpServletResponse();
		ServletWebRequest servletWebRequest = new ServletWebRequest(request, response);

		RequestContextHolder.setRequestAttributes(servletWebRequest);
		testContext.setAttribute(POPULATED_REQUEST_CONTEXT_HOLDER_ATTRIBUTE, Boolean.TRUE);
		testContext.setAttribute(RESET_REQUEST_CONTEXT_HOLDER_ATTRIBUTE, Boolean.TRUE);

		if (wac instanceof ConfigurableApplicationContext) {
			@SuppressWarnings("resource")
			ConfigurableApplicationContext configurableApplicationContext = (ConfigurableApplicationContext) wac;
			ConfigurableListableBeanFactory bf = configurableApplicationContext.getBeanFactory();
			bf.registerResolvableDependency(MockHttpServletResponse.class, response);
			bf.registerResolvableDependency(ServletWebRequest.class, servletWebRequest);
		}
	}
}
 
源代码17 项目: spring-analysis-note   文件: ContextCacheTests.java
private ApplicationContext loadContext(Class<?> testClass) {
	TestContext testContext = TestContextTestUtils.buildTestContext(testClass, contextCache);
	return testContext.getApplicationContext();
}
 
/**
 * Test the annotation an reset the database.
 *
 * @param testContext
 *            default test context filled from spring
 * @param annotation
 *            founded
 */
private void dbResetWithAnnotation(final TestContext testContext,
                                   final FlywayTest annotation) {
    if (annotation != null) {
        Flyway flyWay = null;

        final ApplicationContext appContext = testContext
                .getApplicationContext();

        if (appContext != null) {
            flyWay = getBean(appContext, Flyway.class, annotation.flywayName());

            if (flyWay != null) {
                String executionInfo = "";

                // we have a fly way configuration no lets try
                if (logger.isInfoEnabled()) {
                    executionInfo = ExecutionListenerHelper
                            .getExecutionInformation(testContext);
                    logger.info("---> Start reset database for  '"
                            + executionInfo + "'.");
                }
                if (annotation.invokeCleanDB()) {
                    if (logger.isDebugEnabled()) {
                        logger.debug("******** Clean database for  '"
                                + executionInfo + "'.");
                    }
                    flyWay.clean();
                }
                if (annotation.invokeBaselineDB()) {
                    if (logger.isDebugEnabled()) {
                        logger.debug("******** Baseline database  for  '"
                                + executionInfo + "'.");
                    }
                    flyWay.baseline();
                }
                if (annotation.invokeMigrateDB()) {
                    String[] locations = annotation.locationsForMigrate();

                    if ((locations == null || locations.length == 0)) {

                        if (logger.isDebugEnabled()) {
                            logger.debug("******** Default migrate database for  '"
                                    + executionInfo + "'.");
                        }

                        flyWay.migrate();
                    } else {
                        locationsMigrationHandling(annotation, flyWay,
                                executionInfo);
                    }
                }
                if (logger.isInfoEnabled()) {
                    logger.info("<--- Finished reset database  for  '"
                            + executionInfo + "'.");
                }

                return;
            }
            // in this case we have not the possibility to reset the
            // database

            throw new IllegalArgumentException("Annotation "
                    + annotation.getClass()
                    + " was set, but no Flyway configuration was given.");
        }
        // in this case we have not the possibility to reset the database

        throw new IllegalArgumentException("Annotation "
                + annotation.getClass()
                + " was set, but no configuration was given.");
    } else {
        if (logger.isDebugEnabled()) {
            logger.debug("dbResetWithAnnotation is called without a flyway test annotation.");
        }
    }
}
 
源代码19 项目: java-technology-stack   文件: ContextCacheTests.java
private ApplicationContext loadContext(Class<?> testClass) {
	TestContext testContext = TestContextTestUtils.buildTestContext(testClass, contextCache);
	return testContext.getApplicationContext();
}
 
源代码20 项目: database-rider   文件: SpringRiderTestContext.java
private static DataSource getDataSource(TestContext testContext, String beanName) {
    ApplicationContext context = testContext.getApplicationContext();
    return beanName.isEmpty() ? context.getBean(DataSource.class) : context.getBean(beanName, DataSource.class);
}