}
@Test
public void testCreatePrimitiveVariablesTyped() {
VariableMap variables = createVariables()
.putValue(STRING_VAR_NAME, stringValue(STRING_VAR_VALUE))
.putValue(INTEGER_VAR_NAME, integerValue(INTEGER_VAR_VALUE))
.putValue(BOOLEAN_VAR_NAME, booleanValue(BOOLEAN_VAR_VALUE))
.putValue(NULL_VAR_NAME, untypedNullValue())
.putValue(SHORT_VAR_NAME, shortValue(SHORT_VAR_VALUE))
.putValue(DOUBLE_VAR_NAME, doubleValue(DOUBLE_VAR_VALUE))
.putValue(DATE_VAR_NAME, dateValue(DATE_VAR_VALUE))
.putValue(BYTES_VAR_NAME, byteArrayValue(BYTES_VAR_VALUE));
// get returns values
assertEquals(STRING_VAR_VALUE, variables.get(STRING_VAR_NAME));
assertEquals(INTEGER_VAR_VALUE, variables.get(INTEGER_VAR_NAME));
assertEquals(BOOLEAN_VAR_VALUE, variables.get(BOOLEAN_VAR_NAME));
assertEquals(null, variables.get(NULL_VAR_NAME));
assertEquals(SHORT_VAR_VALUE, variables.get(SHORT_VAR_NAME));
assertEquals(DOUBLE_VAR_VALUE, variables.get(DOUBLE_VAR_NAME));
assertEquals(DATE_VAR_VALUE, variables.get(DATE_VAR_NAME));
assertEquals(BYTES_VAR_VALUE, variables.get(BYTES_VAR_NAME));
// types are not lost
assertEquals(STRING, variables.getValueTyped(STRING_VAR_NAME).getType());
assertEquals(INTEGER, variables.getValueTyped(INTEGER_VAR_NAME).getType());
assertEquals(BOOLEAN, variables.getValueTyped(BOOLEAN_VAR_NAME).getType());
assertEquals(NULL, variables.getValueTyped(NULL_VAR_NAME).getType());
assertEquals(SHORT, variables.getValueTyped(SHORT_VAR_NAME).getType());
assertEquals(DOUBLE, variables.getValueTyped(DOUBLE_VAR_NAME).getType());
assertEquals(DATE, variables.getValueTyped(DATE_VAR_NAME).getType());
assertEquals(BYTES, variables.getValueTyped(BYTES_VAR_NAME).getType());
// get wrappers
String stringValue = variables.<StringValue>getValueTyped(STRING_VAR_NAME).getValue();
assertEquals(STRING_VAR_VALUE, stringValue);
Integer integerValue = variables.<IntegerValue>getValueTyped(INTEGER_VAR_NAME).getValue();
assertEquals(INTEGER_VAR_VALUE, integerValue);
Boolean booleanValue = variables.<BooleanValue>getValueTyped(BOOLEAN_VAR_NAME).getValue();
assertEquals(BOOLEAN_VAR_VALUE, booleanValue);
Short shortValue = variables.<ShortValue>getValueTyped(SHORT_VAR_NAME).getValue();
assertEquals(SHORT_VAR_VALUE, shortValue);
Double doubleValue = variables.<DoubleValue>getValueTyped(DOUBLE_VAR_NAME).getValue();
assertEquals(DOUBLE_VAR_VALUE, doubleValue);
Date dateValue = variables.<DateValue>getValueTyped(DATE_VAR_NAME).getValue();
assertEquals(DATE_VAR_VALUE, dateValue);
byte[] bytesValue = variables.<BytesValue>getValueTyped(BYTES_VAR_NAME).getValue();
assertEquals(BYTES_VAR_VALUE, bytesValue);
}