Author: sgoeschl Date: Tue Sep 14 20:23:08 2010 New Revision: 997075 URL: http://svn.apache.org/viewvc?rev=997075&view=rev Log: Initial import
Added: commons/proper/exec/trunk/src/test/java/org/apache/commons/exec/util/StringUtilTest.java - copied, changed from r996648, commons/proper/exec/trunk/src/test/java/org/apache/commons/exec/util/MapUtilTest.java Copied: commons/proper/exec/trunk/src/test/java/org/apache/commons/exec/util/StringUtilTest.java (from r996648, commons/proper/exec/trunk/src/test/java/org/apache/commons/exec/util/MapUtilTest.java) URL: http://svn.apache.org/viewvc/commons/proper/exec/trunk/src/test/java/org/apache/commons/exec/util/StringUtilTest.java?p2=commons/proper/exec/trunk/src/test/java/org/apache/commons/exec/util/StringUtilTest.java&p1=commons/proper/exec/trunk/src/test/java/org/apache/commons/exec/util/MapUtilTest.java&r1=996648&r2=997075&rev=997075&view=diff ============================================================================== --- commons/proper/exec/trunk/src/test/java/org/apache/commons/exec/util/MapUtilTest.java (original) +++ commons/proper/exec/trunk/src/test/java/org/apache/commons/exec/util/StringUtilTest.java Tue Sep 14 20:23:08 2010 @@ -18,57 +18,70 @@ package org.apache.commons.exec.util; +import junit.framework.TestCase; import org.apache.commons.exec.environment.EnvironmentUtils; import java.util.HashMap; import java.util.Map; -import junit.framework.TestCase; - -public class MapUtilTest extends TestCase +public class StringUtilTest extends TestCase { /** - * Test copying of map + * Test no string substitution */ - public void testCopyMap() throws Exception { + public void testNoStringSubstitution() throws Exception + { + Map vars = new HashMap(); + vars.put("foo", "FOO"); + vars.put("bar", "BAR"); - HashMap procEnvironment = new HashMap(); - procEnvironment.put("JAVA_HOME", "/usr/opt/java"); + assertEquals("This is a FOO & BAR test", StringUtils.stringSubstitution("This is a FOO & BAR test", vars, true).toString()); + } - Map result = MapUtils.copy(procEnvironment); - assertTrue(result.size() == 1); - assertTrue(procEnvironment.size() == 1); - assertEquals("/usr/opt/java", result.get("JAVA_HOME")); - - result.remove("JAVA_HOME"); - assertTrue(result.size() == 0); - assertTrue(procEnvironment.size() == 1); + /** + * Test a default string substitution, e.g. all placeholders + * are expanded. + */ + public void testDefaultStringSubstitution() throws Exception + { + Map vars = new HashMap(); + vars.put("foo", "FOO"); + vars.put("bar", "BAR"); + + assertEquals("This is a FOO & BAR test", StringUtils.stringSubstitution("This is a ${foo} & ${bar} test", vars, true).toString()); + assertEquals("This is a FOO & BAR test", StringUtils.stringSubstitution("This is a ${foo} & ${bar} test", vars, false).toString()); } /** - * Test merging of maps + * Test an incomplete string substitution where not all placeholders + * are expanded. */ - public void testMergeMap() throws Exception { + public void testIncompleteSubstitution() throws Exception { - Map procEnvironment = EnvironmentUtils.getProcEnvironment(); - HashMap applicationEnvironment = new HashMap(); + Map vars = new HashMap(); + vars.put("foo", "FOO"); - applicationEnvironment.put("appMainClass", "foo.bar.Main"); - Map result = MapUtils.merge(procEnvironment, applicationEnvironment); - assertTrue((procEnvironment.size() + applicationEnvironment.size()) == result.size()); - assertEquals("foo.bar.Main", result.get("appMainClass")); + assertEquals("This is a FOO & ${bar} test", StringUtils.stringSubstitution("This is a ${foo} & ${bar} test", vars, true).toString()); + + try + { + StringUtils.stringSubstitution("This is a ${foo} & ${bar} test", vars, false).toString(); + fail(); + } + catch(RuntimeException e) + { + // nothing to do + } } /** - * Test prefixing of map + * Test a erroneous template. */ - public void testPrefixMap() throws Exception { - - HashMap procEnvironment = new HashMap(); - procEnvironment.put("JAVA_HOME", "/usr/opt/java"); + public void testErroneousTemplate() throws Exception + { + Map vars = new HashMap(); + vars.put("foo", "FOO"); - Map result = MapUtils.prefix(procEnvironment, "env"); - assertTrue(procEnvironment.size() == result.size()); - assertEquals("/usr/opt/java", result.get("env.JAVA_HOME")); + assertEquals("This is a FOO & ${}} test", StringUtils.stringSubstitution("This is a ${foo} & ${}} test", vars, true).toString()); } } \ No newline at end of file