Search in sources :

Example 1 with MockServletConfig

use of cn.taketoday.mock.web.MockServletConfig in project today-framework by TAKETODAY.

the class EnvironmentSystemIntegrationTests method registerServletParamPropertySources_AbstractRefreshableWebApplicationContext.

@Test
void registerServletParamPropertySources_AbstractRefreshableWebApplicationContext() {
    MockServletContext servletContext = new MockServletContext();
    servletContext.addInitParameter("pCommon", "pCommonContextValue");
    servletContext.addInitParameter("pContext1", "pContext1Value");
    MockServletConfig servletConfig = new MockServletConfig(servletContext);
    servletConfig.addInitParameter("pCommon", "pCommonConfigValue");
    servletConfig.addInitParameter("pConfig1", "pConfig1Value");
    AbstractRefreshableWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
    ctx.setConfigLocation(EnvironmentAwareBean.class.getName());
    ctx.setServletConfig(servletConfig);
    ctx.refresh();
    ConfigurableEnvironment environment = ctx.getEnvironment();
    assertThat(environment).isInstanceOf(StandardServletEnvironment.class);
    PropertySources propertySources = environment.getPropertySources();
    assertThat(propertySources.contains(StandardServletEnvironment.SERVLET_CONTEXT_PROPERTY_SOURCE_NAME)).isTrue();
    assertThat(propertySources.contains(StandardServletEnvironment.SERVLET_CONFIG_PROPERTY_SOURCE_NAME)).isTrue();
    // ServletConfig gets precedence
    assertThat(environment.getProperty("pCommon")).isEqualTo("pCommonConfigValue");
    assertThat(propertySources.precedenceOf(PropertySource.named(StandardServletEnvironment.SERVLET_CONFIG_PROPERTY_SOURCE_NAME))).isLessThan(propertySources.precedenceOf(PropertySource.named(StandardServletEnvironment.SERVLET_CONTEXT_PROPERTY_SOURCE_NAME)));
    // but all params are available
    assertThat(environment.getProperty("pContext1")).isEqualTo("pContext1Value");
    assertThat(environment.getProperty("pConfig1")).isEqualTo("pConfig1Value");
    // Servlet* PropertySources have precedence over System* PropertySources
    assertThat(propertySources.precedenceOf(PropertySource.named(StandardServletEnvironment.SERVLET_CONFIG_PROPERTY_SOURCE_NAME))).isLessThan(propertySources.precedenceOf(PropertySource.named(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME)));
    // Replace system properties with a mock property source for convenience
    MockPropertySource mockSystemProperties = new MockPropertySource(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME);
    mockSystemProperties.setProperty("pCommon", "pCommonSysPropsValue");
    mockSystemProperties.setProperty("pSysProps1", "pSysProps1Value");
    propertySources.replace(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME, mockSystemProperties);
    // assert that servletconfig params resolve with higher precedence than sysprops
    assertThat(environment.getProperty("pCommon")).isEqualTo("pCommonConfigValue");
    assertThat(environment.getProperty("pSysProps1")).isEqualTo("pSysProps1Value");
}
Also used : MockServletConfig(cn.taketoday.mock.web.MockServletConfig) AbstractRefreshableWebApplicationContext(cn.taketoday.web.context.support.AbstractRefreshableWebApplicationContext) MockPropertySource(cn.taketoday.mock.env.MockPropertySource) AnnotationConfigWebApplicationContext(cn.taketoday.web.context.support.AnnotationConfigWebApplicationContext) MockServletContext(cn.taketoday.mock.web.MockServletContext) Test(org.junit.jupiter.api.Test)

Example 2 with MockServletConfig

use of cn.taketoday.mock.web.MockServletConfig in project today-framework by TAKETODAY.

the class EnvironmentSystemIntegrationTests method registerServletParamPropertySources_StaticWebApplicationContext.

@Test
void registerServletParamPropertySources_StaticWebApplicationContext() {
    MockServletContext servletContext = new MockServletContext();
    servletContext.addInitParameter("pCommon", "pCommonContextValue");
    servletContext.addInitParameter("pContext1", "pContext1Value");
    MockServletConfig servletConfig = new MockServletConfig(servletContext);
    servletConfig.addInitParameter("pCommon", "pCommonConfigValue");
    servletConfig.addInitParameter("pConfig1", "pConfig1Value");
    StaticWebServletApplicationContext ctx = new StaticWebServletApplicationContext();
    ctx.setServletConfig(servletConfig);
    ctx.refresh();
    ConfigurableEnvironment environment = ctx.getEnvironment();
    PropertySources propertySources = environment.getPropertySources();
    assertThat(propertySources.contains(StandardServletEnvironment.SERVLET_CONTEXT_PROPERTY_SOURCE_NAME)).isTrue();
    assertThat(propertySources.contains(StandardServletEnvironment.SERVLET_CONFIG_PROPERTY_SOURCE_NAME)).isTrue();
    // ServletConfig gets precedence
    assertThat(environment.getProperty("pCommon")).isEqualTo("pCommonConfigValue");
    assertThat(propertySources.precedenceOf(PropertySource.named(StandardServletEnvironment.SERVLET_CONFIG_PROPERTY_SOURCE_NAME))).isLessThan(propertySources.precedenceOf(PropertySource.named(StandardServletEnvironment.SERVLET_CONTEXT_PROPERTY_SOURCE_NAME)));
    // but all params are available
    assertThat(environment.getProperty("pContext1")).isEqualTo("pContext1Value");
    assertThat(environment.getProperty("pConfig1")).isEqualTo("pConfig1Value");
    // Servlet* PropertySources have precedence over System* PropertySources
    assertThat(propertySources.precedenceOf(PropertySource.named(StandardServletEnvironment.SERVLET_CONFIG_PROPERTY_SOURCE_NAME))).isLessThan(propertySources.precedenceOf(PropertySource.named(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME)));
    // Replace system properties with a mock property source for convenience
    MockPropertySource mockSystemProperties = new MockPropertySource(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME);
    mockSystemProperties.setProperty("pCommon", "pCommonSysPropsValue");
    mockSystemProperties.setProperty("pSysProps1", "pSysProps1Value");
    propertySources.replace(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME, mockSystemProperties);
    // assert that servletconfig params resolve with higher precedence than sysprops
    assertThat(environment.getProperty("pCommon")).isEqualTo("pCommonConfigValue");
    assertThat(environment.getProperty("pSysProps1")).isEqualTo("pSysProps1Value");
}
Also used : MockServletConfig(cn.taketoday.mock.web.MockServletConfig) MockPropertySource(cn.taketoday.mock.env.MockPropertySource) StaticWebServletApplicationContext(cn.taketoday.web.context.support.StaticWebServletApplicationContext) MockServletContext(cn.taketoday.mock.web.MockServletContext) Test(org.junit.jupiter.api.Test)

Example 3 with MockServletConfig

use of cn.taketoday.mock.web.MockServletConfig in project today-infrastructure by TAKETODAY.

the class EnvironmentSystemIntegrationTests method registerServletParamPropertySources_AbstractRefreshableWebApplicationContext.

@Test
void registerServletParamPropertySources_AbstractRefreshableWebApplicationContext() {
    MockServletContext servletContext = new MockServletContext();
    servletContext.addInitParameter("pCommon", "pCommonContextValue");
    servletContext.addInitParameter("pContext1", "pContext1Value");
    MockServletConfig servletConfig = new MockServletConfig(servletContext);
    servletConfig.addInitParameter("pCommon", "pCommonConfigValue");
    servletConfig.addInitParameter("pConfig1", "pConfig1Value");
    AbstractRefreshableWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
    ctx.setConfigLocation(EnvironmentAwareBean.class.getName());
    ctx.setServletConfig(servletConfig);
    ctx.refresh();
    ConfigurableEnvironment environment = ctx.getEnvironment();
    assertThat(environment).isInstanceOf(StandardServletEnvironment.class);
    PropertySources propertySources = environment.getPropertySources();
    assertThat(propertySources.contains(StandardServletEnvironment.SERVLET_CONTEXT_PROPERTY_SOURCE_NAME)).isTrue();
    assertThat(propertySources.contains(StandardServletEnvironment.SERVLET_CONFIG_PROPERTY_SOURCE_NAME)).isTrue();
    // ServletConfig gets precedence
    assertThat(environment.getProperty("pCommon")).isEqualTo("pCommonConfigValue");
    assertThat(propertySources.precedenceOf(PropertySource.named(StandardServletEnvironment.SERVLET_CONFIG_PROPERTY_SOURCE_NAME))).isLessThan(propertySources.precedenceOf(PropertySource.named(StandardServletEnvironment.SERVLET_CONTEXT_PROPERTY_SOURCE_NAME)));
    // but all params are available
    assertThat(environment.getProperty("pContext1")).isEqualTo("pContext1Value");
    assertThat(environment.getProperty("pConfig1")).isEqualTo("pConfig1Value");
    // Servlet* PropertySources have precedence over System* PropertySources
    assertThat(propertySources.precedenceOf(PropertySource.named(StandardServletEnvironment.SERVLET_CONFIG_PROPERTY_SOURCE_NAME))).isLessThan(propertySources.precedenceOf(PropertySource.named(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME)));
    // Replace system properties with a mock property source for convenience
    MockPropertySource mockSystemProperties = new MockPropertySource(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME);
    mockSystemProperties.setProperty("pCommon", "pCommonSysPropsValue");
    mockSystemProperties.setProperty("pSysProps1", "pSysProps1Value");
    propertySources.replace(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME, mockSystemProperties);
    // assert that servletconfig params resolve with higher precedence than sysprops
    assertThat(environment.getProperty("pCommon")).isEqualTo("pCommonConfigValue");
    assertThat(environment.getProperty("pSysProps1")).isEqualTo("pSysProps1Value");
}
Also used : MockServletConfig(cn.taketoday.mock.web.MockServletConfig) AbstractRefreshableWebApplicationContext(cn.taketoday.web.context.support.AbstractRefreshableWebApplicationContext) MockPropertySource(cn.taketoday.mock.env.MockPropertySource) AnnotationConfigWebApplicationContext(cn.taketoday.web.context.support.AnnotationConfigWebApplicationContext) MockServletContext(cn.taketoday.mock.web.MockServletContext) Test(org.junit.jupiter.api.Test)

Example 4 with MockServletConfig

use of cn.taketoday.mock.web.MockServletConfig in project today-infrastructure by TAKETODAY.

the class EnvironmentSystemIntegrationTests method registerServletParamPropertySources_StaticWebApplicationContext.

@Test
void registerServletParamPropertySources_StaticWebApplicationContext() {
    MockServletContext servletContext = new MockServletContext();
    servletContext.addInitParameter("pCommon", "pCommonContextValue");
    servletContext.addInitParameter("pContext1", "pContext1Value");
    MockServletConfig servletConfig = new MockServletConfig(servletContext);
    servletConfig.addInitParameter("pCommon", "pCommonConfigValue");
    servletConfig.addInitParameter("pConfig1", "pConfig1Value");
    StaticWebServletApplicationContext ctx = new StaticWebServletApplicationContext();
    ctx.setServletConfig(servletConfig);
    ctx.refresh();
    ConfigurableEnvironment environment = ctx.getEnvironment();
    PropertySources propertySources = environment.getPropertySources();
    assertThat(propertySources.contains(StandardServletEnvironment.SERVLET_CONTEXT_PROPERTY_SOURCE_NAME)).isTrue();
    assertThat(propertySources.contains(StandardServletEnvironment.SERVLET_CONFIG_PROPERTY_SOURCE_NAME)).isTrue();
    // ServletConfig gets precedence
    assertThat(environment.getProperty("pCommon")).isEqualTo("pCommonConfigValue");
    assertThat(propertySources.precedenceOf(PropertySource.named(StandardServletEnvironment.SERVLET_CONFIG_PROPERTY_SOURCE_NAME))).isLessThan(propertySources.precedenceOf(PropertySource.named(StandardServletEnvironment.SERVLET_CONTEXT_PROPERTY_SOURCE_NAME)));
    // but all params are available
    assertThat(environment.getProperty("pContext1")).isEqualTo("pContext1Value");
    assertThat(environment.getProperty("pConfig1")).isEqualTo("pConfig1Value");
    // Servlet* PropertySources have precedence over System* PropertySources
    assertThat(propertySources.precedenceOf(PropertySource.named(StandardServletEnvironment.SERVLET_CONFIG_PROPERTY_SOURCE_NAME))).isLessThan(propertySources.precedenceOf(PropertySource.named(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME)));
    // Replace system properties with a mock property source for convenience
    MockPropertySource mockSystemProperties = new MockPropertySource(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME);
    mockSystemProperties.setProperty("pCommon", "pCommonSysPropsValue");
    mockSystemProperties.setProperty("pSysProps1", "pSysProps1Value");
    propertySources.replace(StandardEnvironment.SYSTEM_PROPERTIES_PROPERTY_SOURCE_NAME, mockSystemProperties);
    // assert that servletconfig params resolve with higher precedence than sysprops
    assertThat(environment.getProperty("pCommon")).isEqualTo("pCommonConfigValue");
    assertThat(environment.getProperty("pSysProps1")).isEqualTo("pSysProps1Value");
}
Also used : MockServletConfig(cn.taketoday.mock.web.MockServletConfig) MockPropertySource(cn.taketoday.mock.env.MockPropertySource) StaticWebServletApplicationContext(cn.taketoday.web.context.support.StaticWebServletApplicationContext) MockServletContext(cn.taketoday.mock.web.MockServletContext) Test(org.junit.jupiter.api.Test)

Aggregations

MockPropertySource (cn.taketoday.mock.env.MockPropertySource)4 MockServletConfig (cn.taketoday.mock.web.MockServletConfig)4 MockServletContext (cn.taketoday.mock.web.MockServletContext)4 Test (org.junit.jupiter.api.Test)4 AbstractRefreshableWebApplicationContext (cn.taketoday.web.context.support.AbstractRefreshableWebApplicationContext)2 AnnotationConfigWebApplicationContext (cn.taketoday.web.context.support.AnnotationConfigWebApplicationContext)2 StaticWebServletApplicationContext (cn.taketoday.web.context.support.StaticWebServletApplicationContext)2