public void testSystemProperties() { Format fmt = new Format( "You are {0}, the parent of your home is {1} and you run Java version {2}"); //$NON-NLS-1$ fmt.addValueHolder(new PropertyRef<String>(String.class, "user.name")); // $NON-NLS-1$ Replace rpl1 = new Replace(); rpl1.addMatch(new Replace.Match(Pattern.quote("\\"), "/", false)); // $NON-NLS-1$ //$NON-NLS-2$ rpl1.addValueHolder(new PropertyRef<String>(String.class, "user.home")); // $NON-NLS-1$ Replace rpl2 = new Replace(); rpl2.addMatch(new Replace.Match("^(.*)/[^/]+$", "$1", false)); // $NON-NLS-1$ //$NON-NLS-2$ rpl2.addValueHolder(rpl1); fmt.addValueHolder(rpl2); fmt.addValueHolder(new PropertyRef<String>(String.class, "java.version")); // $NON-NLS-1$ IProperties<String> props = BMProperties.getSystemProperties(); String result = fmt.getValue(props); String expected = "You are " + props.get("user.name") + ", the parent of your home is " //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + (new File(props.get("user.home"))).getParent().replace('\\', '/') + " and you run Java version " //$NON-NLS-1$ //$NON-NLS-2$ + props.get("java.version"); // $NON-NLS-1$ log(result); assertEquals(expected, result); }
public void testCircularExpansionTrap() { IProperties<String> props = new ExpandingProperties<String>(); props.put("some.text", "text is ${some.text.again}!"); // $NON-NLS-1$ //$NON-NLS-2$ props.put("some.other.text", "Hello ${some.text}!"); // $NON-NLS-1$ //$NON-NLS-2$ props.put("some.text.again", "Ouch! ${some.other.text}"); // $NON-NLS-1$ //$NON-NLS-2$ try { log(props.get("some.text.again")); // $NON-NLS-1$ assertFalse(true); } catch (CircularExpansionException e) { log("OK: \"%s\" resulted in a CircularExpansionException", e.getMessage()); // $NON-NLS-1$ } }
public void testExpandingEnvVarProperties() { IProperties<String> props = new ExpandingProperties<String>(BMProperties.getSystemProperties()); props.put("env.salut", "Hello ${env_var:LOGNAME}!"); props.put("env.salut.home", "${env.salut} Your $${env_var:PATH} is ${env_var:PATH}"); String result = props.get("env.salut.home"); // $NON-NLS-1$ String expected = "Hello " + System.getenv("LOGNAME") + "! Your ${env_var:PATH} is " //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + System.getenv("PATH"); // $NON-NLS-1$ log(result); assertEquals(expected, result); }
public void testExpandingProperties() { IProperties<String> props = new ExpandingProperties<String>(BMProperties.getSystemProperties()); props.put("salut", "Hello ${user.name}!"); // $NON-NLS-1$ //$NON-NLS-2$ props.put( "salut.home", "${salut} Your $${user.home} is ${user.home}"); // $NON-NLS-1$ //$NON-NLS-2$ String result = props.get("salut.home"); // $NON-NLS-1$ String expected = "Hello " + System.getProperty("user.name") + "! Your ${user.home} is " //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + System.getProperty("user.home"); // $NON-NLS-1$ log(result); assertEquals(expected, result); }
public void testPropertyParser() throws Exception { IProperties<String> props = new ExpandingProperties<String>(BMProperties.getSystemProperties()); props.put("buckminster.component.target", "ant-optional"); // $NON-NLS-1$ //$NON-NLS-2$ props.put("buckminster.component.name", "org.apache.tools.ant"); // $NON-NLS-1$ //$NON-NLS-2$ props.put("buckminster.component.version", "1.7.0beta1"); // $NON-NLS-1$ //$NON-NLS-2$ DummyParser parser = new DummyParser(props); parser.parse(this.getClass().getResource("/testData/misc/valuetest.xml")); // $NON-NLS-1$ String result = props.get("maven.url"); // $NON-NLS-1$ String verboseResult = props.get("verbose.maven.url"); // $NON-NLS-1$ log(result); log(verboseResult); assertEquals( "http://www.ibiblio.org/maven/ant/jars/ant-optional-1.7.0.jar", result); // $NON-NLS-1$ assertEquals("The created URL is \"" + result + '"', verboseResult); // $NON-NLS-1$ }