blob: 335270264c848772e5796c209ef1d8b048d10465 [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.qpid.configuration;
import org.apache.qpid.test.utils.QpidTestCase;
public class QpidPropertyTest extends QpidTestCase
{
private static final String TEST_VALUE1 = "TEST_VALUE1";
private static final String TEST_VALUE2 = "TEST_VALUE2";
private static final String DEFAULT_VALUE = "DEFAULT_VALUE";
private String _systemPropertyName;
private String _deprecatedSystemPropertyName;
@Override
protected void setUp() throws Exception
{
super.setUp();
_systemPropertyName = getName() + ".current";
_deprecatedSystemPropertyName = getName() + ".deprecated";
}
public void testValueReadFromSystemProperty() throws Exception
{
setTestSystemProperty(_systemPropertyName, TEST_VALUE1);
assertSystemPropertiesSet(_systemPropertyName);
String propertyValue = QpidProperty.stringProperty(DEFAULT_VALUE, _systemPropertyName).get();
assertEquals(TEST_VALUE1, propertyValue);
}
public void testValueReadFromSecondChoiceSystemPropertyWhenFirstChoiceNotSet() throws Exception
{
setTestSystemProperty(_deprecatedSystemPropertyName, TEST_VALUE2);
assertSystemPropertiesSet(_deprecatedSystemPropertyName);
assertSystemPropertiesNotSet(_systemPropertyName);
String propertyValue = QpidProperty.stringProperty("default", _systemPropertyName, _deprecatedSystemPropertyName).get();
assertEquals(TEST_VALUE2, propertyValue);
}
public void testValueReadFromFirstChoiceSystemPropertyWhenBothFirstAndSecondChoiceSet() throws Exception
{
setTestSystemProperty(_systemPropertyName, TEST_VALUE1);
setTestSystemProperty(_deprecatedSystemPropertyName, TEST_VALUE2);
assertSystemPropertiesSet(_systemPropertyName, _deprecatedSystemPropertyName);
String propertyValue = QpidProperty.stringProperty("default", _systemPropertyName, _deprecatedSystemPropertyName).get();
assertEquals(TEST_VALUE1, propertyValue);
}
public void testValueIsDefaultWhenOneSystemPropertyIsNotSet() throws Exception
{
assertSystemPropertiesNotSet(_systemPropertyName);
String propertyValue = QpidProperty.stringProperty(DEFAULT_VALUE, _systemPropertyName).get();
assertEquals(DEFAULT_VALUE, propertyValue);
}
public void testValueIsDefaultWhenTwoSystemPropertiesAreNotSet() throws Exception
{
assertSystemPropertiesNotSet(_systemPropertyName, _deprecatedSystemPropertyName);
String propertyValue = QpidProperty.stringProperty(DEFAULT_VALUE, _systemPropertyName).get();
assertEquals(DEFAULT_VALUE, propertyValue);
}
public void testValueIsNullWhenNoDefaultAndNoSystemPropertiesAreSet() throws Exception
{
assertSystemPropertiesNotSet(_systemPropertyName, _deprecatedSystemPropertyName);
String nullString = null;
String propertyValue = QpidProperty.stringProperty(nullString, _systemPropertyName).get();
assertNull(propertyValue);
}
public void testBooleanValueReadFromSystemProperty() throws Exception
{
setTestSystemProperty(_systemPropertyName, Boolean.FALSE.toString());
assertSystemPropertiesSet(_systemPropertyName);
boolean propertyValue = QpidProperty.booleanProperty(Boolean.TRUE, _systemPropertyName).get();
assertFalse(propertyValue);
}
public void testBooleanValueIsDefaultWhenOneSystemPropertyIsNotSet() throws Exception
{
assertSystemPropertiesNotSet(_systemPropertyName);
Boolean propertyValue = QpidProperty.booleanProperty(Boolean.TRUE, _systemPropertyName).get();
assertTrue(propertyValue);
}
public void testIntegerValueReadFromSystemProperty() throws Exception
{
int expectedValue = 15;
setTestSystemProperty(_systemPropertyName, Integer.valueOf(expectedValue).toString());
assertSystemPropertiesSet(_systemPropertyName);
int propertyValue = QpidProperty.intProperty(14, _systemPropertyName).get();
assertEquals(expectedValue, propertyValue);
}
public void testIntegerValueIsDefaultWhenOneSystemPropertyIsNotSet() throws Exception
{
int expectedValue = 15;
assertSystemPropertiesNotSet(_systemPropertyName);
int propertyValue = QpidProperty.intProperty(expectedValue, _systemPropertyName).get();
assertEquals(expectedValue, propertyValue);
}
public void testLongValueReadFromSystemProperty() throws Exception
{
long expectedValue = 15;
setTestSystemProperty(_systemPropertyName, Long.valueOf(expectedValue).toString());
assertSystemPropertiesSet(_systemPropertyName);
long propertyValue = QpidProperty.longProperty(14l, _systemPropertyName).get();
assertEquals(expectedValue, propertyValue);
}
public void testLongValueIsDefaultWhenOneSystemPropertyIsNotSet() throws Exception
{
long expectedValue = 15;
assertSystemPropertiesNotSet(_systemPropertyName);
long propertyValue = QpidProperty.longProperty(expectedValue, _systemPropertyName).get();
assertEquals(expectedValue, propertyValue);
}
public void testFloatValueReadFromSystemProperty() throws Exception
{
float expectedValue = 1.5f;
setTestSystemProperty(_systemPropertyName, Float.valueOf(expectedValue).toString());
assertSystemPropertiesSet(_systemPropertyName);
float propertyValue = QpidProperty.floatProperty(1.5f, _systemPropertyName).get();
assertEquals(expectedValue, propertyValue, 0.1);
}
public void testFloatValueIsDefaultWhenOneSystemPropertyIsNotSet() throws Exception
{
float expectedValue = 1.5f;
assertSystemPropertiesNotSet(_systemPropertyName);
float propertyValue = QpidProperty.floatProperty(expectedValue, _systemPropertyName).get();
assertEquals(expectedValue, propertyValue, 0.1);
}
private void assertSystemPropertiesSet(String... systemPropertyNames)
{
for (String systemPropertyName : systemPropertyNames)
{
assertTrue("System property " + systemPropertyName + " should be set",
System.getProperties().containsKey(systemPropertyName));
}
}
private void assertSystemPropertiesNotSet(String... systemPropertyNames)
{
for (String systemPropertyName : systemPropertyNames)
{
assertFalse("System property " + systemPropertyName + " should not be set",
System.getProperties().containsKey(systemPropertyName));
}
}
}