/*
* Copyright (C) 2006-2016 DLR, Germany
*
* All rights reserved
*
* http://www.rcenvironment.de/
*/
package de.rcenvironment.core.utils.common.variables.legacy;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
import java.io.Serializable;
import java.util.Hashtable;
import java.util.Map;
import java.util.Map.Entry;
import org.junit.Test;
/**
* Tests the super class of BoundVariable.
*
* @author Arne Bachmann
*/
@SuppressWarnings("deprecation") // Keep test for deprecated class TypedValue
public class TypedValueTest {
/**
* Test.
*/
@Test
public void testRepresentation() {
@SuppressWarnings("serial") final Map<VariableType, String> expectedRepresentations =
new Hashtable<VariableType, String>() {
{
put(VariableType.Integer, "23423423423423432432348567");
put(VariableType.Real, "1289734609.344367");
put(VariableType.Logic, "true");
}
};
for (final Entry<VariableType, String> entry : expectedRepresentations.entrySet()) {
final TypedValue var = new TypedValue(entry.getKey(), entry.getValue());
assertThat(var.getStringValue(), is(entry.getValue()));
}
}
/**
* More code to check.
*/
@Test
public void testMissingCoverage() {
final long x23434 = 23434L;
final int x34 = 34;
final long x45 = 45;
assertThat(new TypedValue("c".getClass(), "0").getType(), is(VariableType.String));
assertThat(new TypedValue(false).setLogicValue(true).getLogicValue(), is(true));
assertThat(new TypedValue((Serializable) null).getValue(), is((Serializable) null));
assertThat(new TypedValue((Serializable) null).getLogicValue(), is(false));
assertThat(new TypedValue((Serializable) null).getType(), is(VariableType.Empty));
assertThat(new TypedValue(Long.class, "23434").getType(), is(VariableType.Integer));
assertThat(new TypedValue(Long.class, "23434").getIntegerValue(), is(x23434));
assertThat(new TypedValue(VariableType.String).setValue("abc").getType(), is(VariableType.String));
assertThat(new TypedValue(x34).setValueFromString("45").getIntegerValue(), is(x45));
}
/**
* Y.
*/
@Test(expected = IllegalArgumentException.class)
public void testWrongSetType1() {
assertThat(new TypedValue(VariableType.String).setValue(2.0D).getType(), is(VariableType.Real));
}
/**
* X.
*/
@Test(expected = NullPointerException.class)
public void testWrongSetType2() {
assertThat(new TypedValue(VariableType.Integer).setEmptyValue().getIntegerValue(), is(0L)); // throws NPE
}
}