package org.geowebcache; import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; import static org.easymock.EasyMock.verify; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Properties; import org.springframework.context.ApplicationContext; import junit.framework.TestCase; /** * Unit test suite for {@link GeoWebCacheExtensions} * * @author Gabriel Roldan (TOPP) * @version $Id$ */ public class GeoWebCacheEnvironmentTest extends TestCase { protected void setUp() throws Exception { super.setUp(); System.setProperty("TEST_SYS_PROPERTY", "ABC"); System.setProperty("ALLOW_ENV_PARAMETRIZATION", "true"); } protected void tearDown() throws Exception { super.tearDown(); System.setProperty("TEST_SYS_PROPERTY", ""); System.setProperty("ALLOW_ENV_PARAMETRIZATION", ""); } public void testEnvironment() { ApplicationContext appContext = createMock(ApplicationContext.class); GeoWebCacheEnvironment genv = new GeoWebCacheEnvironment(); assertEquals(0, GeoWebCacheExtensions.extensionsCache.size()); expect(appContext.getBeanNamesForType(GeoWebCacheEnvironment.class)).andReturn( new String[] { "geoWebCacheEnvironment" }); expect(appContext.getBean("geoWebCacheEnvironment")).andReturn(genv); Map<String, GeoWebCacheEnvironment> genvMap = new HashMap<>(); genvMap.put("geoWebCacheEnvironment", genv); expect(appContext.getBeansOfType(GeoWebCacheEnvironment.class)) .andReturn(genvMap).anyTimes(); replay(appContext); GeoWebCacheExtensions gse = new GeoWebCacheExtensions(); gse.setApplicationContext(appContext); List<GeoWebCacheEnvironment> extensions = GeoWebCacheExtensions .extensions(GeoWebCacheEnvironment.class); assertNotNull(extensions); assertEquals(1, extensions.size()); assertTrue(extensions.contains(genv)); assertTrue(GeoWebCacheEnvironment.ALLOW_ENV_PARAMETRIZATION); } public void testSystemProperty() { // check for a property we did set up in the setUp GeoWebCacheEnvironment genv = new GeoWebCacheEnvironment(); assertEquals("ABC", genv.resolveValue("${TEST_SYS_PROPERTY}")); Properties props = new Properties(); props.setProperty("TEST_SYS_PROPERTY", "DEF"); props.setProperty("TEST_PROPERTY", "WWW"); genv.setProps(props); assertEquals("ABC", genv.resolveValue("${TEST_SYS_PROPERTY}")); assertEquals("WWW", genv.resolveValue("${TEST_PROPERTY}")); } }