package org.rhq.core.template; import java.util.TreeMap; import junit.framework.TestCase; import org.testng.annotations.Test; @Test public class TemplateEngineTest extends TestCase { private static final String IPADDR = "192.168.22.153"; private static final String SUCCESSTOKEN1 = "successtoken1"; private static final String SUCCESSTOKEN2 = "successtoken2"; private static final String WINTEMPDIR = "C:\\Users\\JSHAUG~1\\Documents and Settings\\Local\\Temp\\"; String noTokens = "This string should come through unchanged"; String justOneToken = "@@rhq.token1@@"; String oneTokenWhiteSpace = "@@ rhq.token1 @@"; String multipleLogTokens = "This string has @@rhq.token1@@\n" + "@@ rhq.unsettoken @@\n" + "@@ nmsqt.token1 @@" + "It also has @@rhq.platform.ethers.eth1.ipaddress @@"; String sameTokenTwice = "@@rhq.token1@@@@rhq.token1@@"; TemplateEngine templateEngine; TreeMap<String, String> tokens; TreeMap<String, String> getTokens() { if (null == tokens) { tokens = new TreeMap<String, String>(); tokens.put("rhq.token1", SUCCESSTOKEN1); tokens.put("rhq.platform.ethers.eth1.ipaddress", IPADDR); tokens.put("rhq.system.sysprop.java.io.tmpdir", WINTEMPDIR); tokens.put("myapp.max-heap", SUCCESSTOKEN2); // key has dash char in it (bad) tokens.put("myapp.max_heap", SUCCESSTOKEN2); // key has _ char in it (ok) } return tokens; } @Override protected void setUp() throws Exception { templateEngine = new TemplateEngine(getTokens()); } public void testNoTokens() { assertEquals(noTokens, templateEngine.replaceTokens(noTokens)); } public void testOneToken() { assertEquals(SUCCESSTOKEN1, templateEngine.replaceTokens(justOneToken)); } public void testOneTokenWithDash() { assertEquals("@@myapp.max-heap@@", templateEngine.replaceTokens("@@myapp.max-heap@@")); // can't have - in names } public void testOneTokenWithUnderscore() { assertEquals(SUCCESSTOKEN2, templateEngine.replaceTokens("@@myapp.max_heap@@")); } public void testWinToken() { assertEquals(WINTEMPDIR, templateEngine.replaceTokens("@@rhq.system.sysprop.java.io.tmpdir@@")); assertEquals(WINTEMPDIR + "-" + WINTEMPDIR, templateEngine .replaceTokens("@@rhq.system.sysprop.java.io.tmpdir@@-@@ rhq.system.sysprop.java.io.tmpdir @@")); } public void testOneTokenWhiteSpace() { assertEquals(SUCCESSTOKEN1, templateEngine.replaceTokens(oneTokenWhiteSpace)); } public void testLongString() { assertTrue(templateEngine.replaceTokens(multipleLogTokens).indexOf(SUCCESSTOKEN1) > 0); assertTrue(templateEngine.replaceTokens(multipleLogTokens).indexOf(IPADDR) > 0); } public void testIgnore() { assertTrue(templateEngine.replaceTokens(multipleLogTokens).indexOf("@@ rhq.unsettoken @@") > 0); assertTrue(templateEngine.replaceTokens(multipleLogTokens).indexOf("@@ nmsqt.token1 @@") > 0); } public void testSameTokenTwice() { assertEquals(SUCCESSTOKEN1 + SUCCESSTOKEN1, templateEngine.replaceTokens(sameTokenTwice)); } }