blob: d721169d562aaaf73ecf78103c67ae3750c1c2b5 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.ode.utils;
import junit.framework.TestCase;
/**
* Test the {@link SystemUtils} class.
*/
public class SystemUtilsTest extends TestCase {
static final String PROP = "org.apache.ode.test.property";
static final String REPLACE = "${" + PROP + "}";
static final String VALUE = "foo\bar$bar";
public void setUp() {
System.getProperties().setProperty(PROP, VALUE);
}
public void teardown() {
System.getProperties().setProperty(PROP, null);
}
public void testReplaceSystemProperties() throws Exception {
// no replacement
assertReplace("xxx", "xxx");
// no substitutions for special characters
assertReplace("\\aaa\\\\bbb$$$ccc$", "\\aaa\\\\bbb$$$ccc$");
// empty replacement
assertReplace("${}", "${}");
// as-is
assertReplace(REPLACE, VALUE);
// before
assertReplace(REPLACE + "foo", VALUE + "foo");
// after
assertReplace("foo" + REPLACE, "foo" + VALUE);
// before+after
assertReplace(REPLACE + "foo" + REPLACE, VALUE + "foo" + VALUE);
// in-between
assertReplace("foo" + REPLACE + "bar", "foo" + VALUE + "bar");
// multiple occurence
assertReplace(" " + REPLACE + " " + REPLACE + " " + REPLACE, " "
+ VALUE + " " + VALUE + " " + VALUE);
// undefined
assertReplace(" ${undefined.property} ", " ${undefined.property} ");
// stacked
assertReplace(REPLACE + REPLACE, VALUE + VALUE);
}
static void assertReplace(String str, String expected) throws Exception {
String actual = SystemUtils.replaceSystemProperties(str);
assertEquals(expected, actual);
}
}