/**
* This file is part of muCommander, http://www.mucommander.com
* Copyright (C) 2002-2016 Maxence Bernard
*
* muCommander is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* muCommander is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package com.mucommander.commons.conf;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.Vector;
/**
* A test case for the {@link ConfigurationEvent} class.
* @author Nicolas Rinaudo
*/
public class ConfigurationEventTest {
// - Test constants ------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------------------
/** Name of the test variable. */
private static final String VARIABLE_NAME = "variable";
/** Test string value. */
private static final String STRING_VALUE = "value";
/** Test list value. */
private static final Vector<String> LIST_VALUE = new Vector<String>();
/** Test integer value. */
private static final int INTEGER_VALUE = 10;
/** Test long value. */
private static final long LONG_VALUE = 15;
/** Test float value. */
private static final float FLOAT_VALUE = (float)10.5;
/** Test double value. */
private static final double DOUBLE_VALUE = 15.5;
/** Test boolean value. */
private static final boolean BOOLEAN_VALUE = true;
// - Instance fields -----------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------------------
/** Configuration instance used to create events. */
private Configuration conf;
// - Initialisation ------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------------------
static {
for(int i = 0; i < 7; i++)
LIST_VALUE.add(Integer.toString(i));
}
/**
* Initialises the test case.
*/
@BeforeMethod
public void setUp() {
conf = new Configuration();
}
// - Type specific tests -------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------------------
/**
* Tests string events.
*/
@Test
public void testStringEvents() {
ConfigurationEvent event;
// Makes sure the value passed to the constructor is properly returned.
event = new ConfigurationEvent(conf, VARIABLE_NAME, STRING_VALUE);
assert STRING_VALUE.equals(event.getValue());
// Makes sure unset values are returned as null.
event = new ConfigurationEvent(conf, VARIABLE_NAME, null);
assert null == event.getValue();
}
/**
* Tests list events.
*/
@Test
public void testListEvents() {
ConfigurationEvent event;
// Makes sure the value passed to the constructor is properly returned.
event = new ConfigurationEvent(conf, VARIABLE_NAME, ValueList.toString(LIST_VALUE, ";"));
assert LIST_VALUE.equals(event.getListValue(";"));
// Makes sure unset values are returned as null.
event = new ConfigurationEvent(conf, VARIABLE_NAME, null);
assert null == event.getListValue(";");
}
/**
* Tests integer events.
*/
@Test
public void testIntegerEvent() {
ConfigurationEvent event;
// Makes sure the value passed to the constructor is properly returned.
event = new ConfigurationEvent(conf, VARIABLE_NAME, Integer.toString(INTEGER_VALUE));
assert INTEGER_VALUE == event.getIntegerValue();
// Makes sure unset values are returned as 0.
event = new ConfigurationEvent(conf, VARIABLE_NAME, null);
assert 0 == event.getIntegerValue();
}
/**
* Tests long events.
*/
@Test
public void testLongEvent() {
ConfigurationEvent event;
// Makes sure the value passed to the constructor is properly returned.
event = new ConfigurationEvent(conf, VARIABLE_NAME, Long.toString(LONG_VALUE));
assert LONG_VALUE == event.getLongValue();
// Makes sure unset values are returned as 0.
event = new ConfigurationEvent(conf, VARIABLE_NAME, null);
assert 0 == event.getLongValue();
}
/**
* Tests double events.
*/
@Test
public void testDoubleEvent() {
ConfigurationEvent event;
// Makes sure the value passed to the constructor is properly returned.
event = new ConfigurationEvent(conf, VARIABLE_NAME, Double.toString(DOUBLE_VALUE));
assert DOUBLE_VALUE == event.getDoubleValue();
// Makes sure unset values are returned as 0.
event = new ConfigurationEvent(conf, VARIABLE_NAME, null);
assert 0 == event.getDoubleValue();
}
/**
* Tests float events.
*/
@Test
public void testFloatEvent() {
ConfigurationEvent event;
// Makes sure the value passed to the constructor is properly returned.
event = new ConfigurationEvent(conf, VARIABLE_NAME, Float.toString(FLOAT_VALUE));
assert FLOAT_VALUE == event.getFloatValue();
// Makes sure unset values are returned as 0.
event = new ConfigurationEvent(conf, VARIABLE_NAME, null);
assert 0 == event.getFloatValue();
}
/**
* Tests boolean events.
*/
@Test
public void testBooleanEvent() {
ConfigurationEvent event;
// Makes sure the value passed to the constructor is properly returned.
event = new ConfigurationEvent(conf, VARIABLE_NAME, Boolean.toString(BOOLEAN_VALUE));
assert BOOLEAN_VALUE == event.getBooleanValue();
// Makes sure unset values are returned as 0.
event = new ConfigurationEvent(conf, VARIABLE_NAME, null);
assert false == event.getBooleanValue();
}
// - Misc. tests ---------------------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------------------------------
/**
* Tests event creation.
*/
@Test
public void testConstructor() {
ConfigurationEvent event;
// Makes sure the constructor initialises events properly.
event = new ConfigurationEvent(conf, VARIABLE_NAME, STRING_VALUE);
assert conf.equals(event.getConfiguration());
assert VARIABLE_NAME.equals(event.getVariable());
}
}