package org.jboss.modules.xml; import static org.junit.Assert.*; import org.jboss.modules.util.ModulesTestBase; import org.junit.Before; import org.junit.Test; public class PropertyExpanderTestCase extends ModulesTestBase{ private static final String FILE_SEPATATOR = System.getProperty("file.separator"); private static final String SOME_PROPERTY = "some.property"; private static final String SOME_PROPERTY_VALUE = "someProperty"; private static final String OTHER_PROPERTY = "other.property"; private static final String OTHER_PROPERTY_VALUE ="otherProperty"; private static final String JBOSS_HOME = "jboss.home.dir"; private static final String JBOSS_HOME_VALUE = "/Users/home/jshepher/eap/jboss-eap-7"; @Before public void setup() throws Exception{ super.setUp(); System.setProperty(SOME_PROPERTY, SOME_PROPERTY_VALUE); System.setProperty(OTHER_PROPERTY, OTHER_PROPERTY_VALUE); System.setProperty(JBOSS_HOME, JBOSS_HOME_VALUE); } @Test public void systemProp(){ String result = PolicyExpander.expand(String.format("${%s}", SOME_PROPERTY)); assertEquals(SOME_PROPERTY_VALUE, result); } @Test public void multiSystemProp(){ String result = PolicyExpander.expand(String.format("${%s}${%s}", SOME_PROPERTY, OTHER_PROPERTY)); assertEquals(String.format("%s%s", SOME_PROPERTY_VALUE, OTHER_PROPERTY_VALUE), result); } @Test public void multiSystemPropWithNonSpecial(){ String result = PolicyExpander.expand(String.format("${%s}abc${%s}", SOME_PROPERTY, OTHER_PROPERTY)); assertEquals(String.format("%sabc%s", SOME_PROPERTY_VALUE, OTHER_PROPERTY_VALUE), result); } @Test public void multiSystemPropWithSpecial(){ String result = PolicyExpander.expand(String.format("${%s}a$bc${%s}", SOME_PROPERTY, OTHER_PROPERTY)); assertEquals(String.format("%sa$bc%s", SOME_PROPERTY_VALUE, OTHER_PROPERTY_VALUE), result); } @Test public void fileSeperator(){ String result = PolicyExpander.expand("${/}"); assertEquals(FILE_SEPATATOR, result); } @Test public void fileSeperatorInExpression(){ String result = PolicyExpander.expand("${/abc}"); if(result != null) System.out.println(result); assertNull(result); } @Test public void propAndFileSeperator(){ String result = PolicyExpander.expand(String.format("${%s}${/}abc${/}", SOME_PROPERTY)); assertEquals(String.format("%s%sabc%s", SOME_PROPERTY_VALUE, FILE_SEPATATOR, FILE_SEPATATOR), result); } @Test public void propAndPath(){ String result = PolicyExpander.expand(String.format("${%s}/standalone/configuration/logging.properties", JBOSS_HOME)); assertEquals(String.format("%s/standalone/configuration/logging.properties", JBOSS_HOME_VALUE), result); } }