package org.deegree.securityproxy; import static java.io.File.createTempFile; import static org.apache.commons.io.IOUtils.copy; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * Checks if the applicationContext.xml could be loaded successful. * * Therefore a new temp directory is created as configuration directory. The required properties file is copied into * this and the system property 'PROXY_CONFIG' is set to this configuration directory. After the test is finshed the * property is set to the old value. * * @author <a href="goltz@lat-lon.de">Lyn Goltz</a> * @author last edited by: $Author: erben $ * * @version $Revision: $, $Date: $ */ public class LoadApplicationContextTest { private static final String CONFIG_PROPERTIES_FILE_NAME = "config.properties"; private static final String PROXY_CONFIG_PROPERTY_KEY = "PROXY_CONFIG"; private static String oldProperty; @BeforeClass public static void copyPropertiesFileAndSetProxyConfigSystemVaraiable() throws IOException { File configDir = copyPropertiesFileToNewConfigDir(); oldProperty = System.getProperty( PROXY_CONFIG_PROPERTY_KEY ); System.setProperty( PROXY_CONFIG_PROPERTY_KEY, configDir.toString() ); } @AfterClass public static void resetProxyConfigSystemProperty() { if ( oldProperty != null ) System.setProperty( PROXY_CONFIG_PROPERTY_KEY, oldProperty ); } @Test public void testLoadApplicationContext() { ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext( "applicationContext.xml", "authenticationContext.xml", "wmsContext.xml", "wcsContext.xml", "wpsContext.xml", "wfsContext.xml" ); ctx.close(); } private static File copyPropertiesFileToNewConfigDir() throws IOException { File configDirectory = createConfigDirectory(); File configPropertiesFile = new File( configDirectory, CONFIG_PROPERTIES_FILE_NAME ); FileOutputStream fileOutputStream = new FileOutputStream( configPropertiesFile ); InputStream testConfigProperties = LoadApplicationContextTest.class.getResourceAsStream( "test_config.properties" ); copy( testConfigProperties, fileOutputStream ); testConfigProperties.close(); fileOutputStream.close(); return configDirectory; } private static File createConfigDirectory() throws IOException { File configDirectory = createTempFile( "blackbridge-config", "" ); configDirectory.delete(); configDirectory.mkdir(); return configDirectory; } }