package org.gradoop.common.model.impl.properties;
import com.google.common.collect.Lists;
import org.gradoop.common.model.impl.id.GradoopId;
import org.gradoop.common.storage.exceptions.UnsupportedTypeException;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.ExpectedException;
import java.io.IOException;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import static org.gradoop.common.GradoopTestUtils.*;
import static org.gradoop.common.model.impl.properties.PropertyValue.create;
import static org.junit.Assert.*;
public class PropertyValueTest {
@Rule
public ExpectedException exception = ExpectedException.none();
@Test
public void testBigDecimalConversion() {
PropertyValue property;
BigDecimal decimalValue;
// INT
property = create(INT_VAL_2);
decimalValue = BigDecimal.valueOf(INT_VAL_2);
assertEquals(decimalValue, property.getBigDecimal());
// LONG
property = create(LONG_VAL_3);
decimalValue = BigDecimal.valueOf(LONG_VAL_3);
assertEquals(decimalValue, property.getBigDecimal());
// FLOAT
property = create(FLOAT_VAL_4);
decimalValue = BigDecimal.valueOf(FLOAT_VAL_4);
assertEquals(decimalValue, property.getBigDecimal());
// DOUBLE
property = create(DOUBLE_VAL_5);
decimalValue = BigDecimal.valueOf(DOUBLE_VAL_5);
assertEquals(decimalValue, property.getBigDecimal());
// STRING
property = create("-3.5");
decimalValue = new BigDecimal("-3.5");
assertEquals(decimalValue, property.getBigDecimal());
exception.expect(NumberFormatException.class);
property = create("No Number");
property.getBigDecimal();
}
@Test
public void testFailedBigDecimalConversion() {
exception.expect(ClassCastException.class);
create(BOOL_VAL_1).getBigDecimal();
}
@Test
public void testCreate() throws Exception {
// null
PropertyValue p = create(null);
assertTrue(p.isNull());
assertNull(p.getObject());
// boolean
p = create(BOOL_VAL_1);
assertTrue(p.isBoolean());
assertEquals(BOOL_VAL_1, p.getBoolean());
// int
p = create(INT_VAL_2);
assertTrue(p.isInt());
assertEquals(INT_VAL_2, p.getInt());
// long
p = create(LONG_VAL_3);
assertTrue(p.isLong());
assertEquals(LONG_VAL_3, p.getLong());
// float
p = create(FLOAT_VAL_4);
assertTrue(p.isFloat());
assertEquals(FLOAT_VAL_4, p.getFloat(), 0);
// double
p = create(DOUBLE_VAL_5);
assertTrue(p.isDouble());
assertEquals(DOUBLE_VAL_5, p.getDouble(), 0);
// String
p = create(STRING_VAL_6);
assertTrue(p.isString());
assertEquals(STRING_VAL_6, p.getString());
// BigDecimal
p = create(BIG_DECIMAL_VAL_7);
assertTrue(p.isBigDecimal());
assertEquals(BIG_DECIMAL_VAL_7, p.getBigDecimal());
//GradoopId
p = create(GRADOOP_ID_VAL_8);
assertTrue(p.isGradoopId());
assertEquals(GRADOOP_ID_VAL_8, p.getGradoopId());
//Map
p = create(MAP_VAL_9);
assertTrue(p.isMap());
assertEquals(MAP_VAL_9, p.getMap());
//List
p = create(LIST_VAL_a);
assertTrue(p.isList());
assertEquals(LIST_VAL_a, p.getList());
//Date
p = create(DATE_VAL_b);
assertTrue(p.isDate());
assertEquals(DATE_VAL_b, p.getDate());
//Time
p = create(TIME_VAL_c);
assertTrue(p.isTime());
assertEquals(TIME_VAL_c, p.getTime());
//DateTime
p = create(DATETIME_VAL_d);
assertTrue(p.isDateTime());
assertEquals(DATETIME_VAL_d, p.getDateTime());
}
@Test
public void testSetAndGetObject() throws Exception {
PropertyValue p = new PropertyValue();
p.setObject(null);
assertTrue(p.isNull());
assertNull(p.getObject());
p.setObject(BOOL_VAL_1);
assertTrue(p.isBoolean());
assertEquals(BOOL_VAL_1, p.getObject());
// int
p.setObject(INT_VAL_2);
assertTrue(p.isInt());
assertEquals(INT_VAL_2, p.getObject());
// long
p.setObject(LONG_VAL_3);
assertTrue(p.isLong());
assertEquals(LONG_VAL_3, p.getObject());
// float
p.setObject(FLOAT_VAL_4);
assertTrue(p.isFloat());
assertEquals(FLOAT_VAL_4, p.getObject());
// double
p.setObject(DOUBLE_VAL_5);
assertTrue(p.isDouble());
assertEquals(DOUBLE_VAL_5, p.getObject());
// String
p.setObject(STRING_VAL_6);
assertTrue(p.isString());
assertEquals(STRING_VAL_6, p.getObject());
// BigDecimal
p.setObject(BIG_DECIMAL_VAL_7);
assertTrue(p.isBigDecimal());
assertEquals(BIG_DECIMAL_VAL_7, p.getObject());
// GradoopId
p.setObject(GRADOOP_ID_VAL_8);
assertTrue(p.isGradoopId());
assertEquals(GRADOOP_ID_VAL_8, p.getObject());
// Map
p.setObject(MAP_VAL_9);
assertTrue(p.isMap());
assertEquals(MAP_VAL_9, p.getObject());
// List
p.setObject(LIST_VAL_a);
assertTrue(p.isList());
assertEquals(LIST_VAL_a, p.getObject());
//Date
p.setObject(DATE_VAL_b);
assertTrue(p.isDate());
assertEquals(DATE_VAL_b, p.getDate());
//Time
p.setObject(TIME_VAL_c);
assertTrue(p.isTime());
assertEquals(TIME_VAL_c, p.getTime());
//DateTime
p.setObject(DATETIME_VAL_d);
assertTrue(p.isDateTime());
assertEquals(DATETIME_VAL_d, p.getDateTime());
}
@Test(expected = UnsupportedTypeException.class)
public void testSetObjectWithUnsupportedType() {
PropertyValue p = new PropertyValue();
p.setObject(new HashSet<>());
}
@Test
public void testIsNull() throws Exception {
PropertyValue p = PropertyValue.create(null);
assertTrue(p.isNull());
assertFalse(p.isBoolean());
assertFalse(p.isInt());
assertFalse(p.isLong());
assertFalse(p.isFloat());
assertFalse(p.isDouble());
assertFalse(p.isString());
assertFalse(p.isBigDecimal());
assertFalse(p.isGradoopId());
assertFalse(p.isMap());
assertFalse(p.isList());
assertFalse(p.isDate());
assertFalse(p.isTime());
assertFalse(p.isDateTime());
}
@Test
public void testIsBoolean() throws Exception {
PropertyValue p = PropertyValue.create(true);
assertFalse(p.isNull());
assertTrue(p.isBoolean());
assertFalse(p.isInt());
assertFalse(p.isLong());
assertFalse(p.isFloat());
assertFalse(p.isDouble());
assertFalse(p.isString());
assertFalse(p.isBigDecimal());
assertFalse(p.isGradoopId());
assertFalse(p.isMap());
assertFalse(p.isList());
assertFalse(p.isDate());
assertFalse(p.isTime());
assertFalse(p.isDateTime());
}
@Test
public void testGetBoolean() throws Exception {
PropertyValue p = PropertyValue.create(BOOL_VAL_1);
assertEquals(BOOL_VAL_1, p.getBoolean());
}
@Test
public void testSetBoolean() throws Exception {
PropertyValue p = new PropertyValue();
p.setBoolean(BOOL_VAL_1);
assertEquals(BOOL_VAL_1, p.getBoolean());
}
@Test
public void testIsInt() throws Exception {
PropertyValue p = PropertyValue.create(INT_VAL_2);
assertFalse(p.isNull());
assertFalse(p.isBoolean());
assertTrue(p.isInt());
assertFalse(p.isLong());
assertFalse(p.isFloat());
assertFalse(p.isDouble());
assertFalse(p.isString());
assertFalse(p.isBigDecimal());
assertFalse(p.isGradoopId());
assertFalse(p.isMap());
assertFalse(p.isList());
assertFalse(p.isDate());
assertFalse(p.isTime());
assertFalse(p.isDateTime());
}
@Test
public void testGetInt() throws Exception {
PropertyValue p = PropertyValue.create(INT_VAL_2);
assertEquals(INT_VAL_2, p.getInt());
}
@Test
public void testSetInt() throws Exception {
PropertyValue p = new PropertyValue();
p.setInt(INT_VAL_2);
assertEquals(INT_VAL_2, p.getInt());
}
@Test
public void testIsLong() throws Exception {
PropertyValue p = PropertyValue.create(LONG_VAL_3);
assertFalse(p.isNull());
assertFalse(p.isBoolean());
assertFalse(p.isInt());
assertTrue(p.isLong());
assertFalse(p.isFloat());
assertFalse(p.isDouble());
assertFalse(p.isString());
assertFalse(p.isBigDecimal());
assertFalse(p.isGradoopId());
assertFalse(p.isMap());
assertFalse(p.isList());
assertFalse(p.isDate());
assertFalse(p.isTime());
assertFalse(p.isDateTime());
}
@Test
public void testGetLong() throws Exception {
PropertyValue p = PropertyValue.create(LONG_VAL_3);
assertEquals(LONG_VAL_3, p.getLong());
}
@Test
public void testSetLong() throws Exception {
PropertyValue p = new PropertyValue();
p.setLong(LONG_VAL_3);
assertEquals(LONG_VAL_3, p.getLong());
}
@Test
public void testIsFloat() throws Exception {
PropertyValue p = PropertyValue.create(FLOAT_VAL_4);
assertFalse(p.isNull());
assertFalse(p.isBoolean());
assertFalse(p.isInt());
assertFalse(p.isLong());
assertTrue(p.isFloat());
assertFalse(p.isDouble());
assertFalse(p.isString());
assertFalse(p.isBigDecimal());
assertFalse(p.isGradoopId());
assertFalse(p.isMap());
assertFalse(p.isList());
assertFalse(p.isDate());
assertFalse(p.isTime());
assertFalse(p.isDateTime());
}
@Test
public void testGetFloat() throws Exception {
PropertyValue p = PropertyValue.create(FLOAT_VAL_4);
assertEquals(FLOAT_VAL_4, p.getFloat(), 0);
}
@Test
public void testSetFloat() throws Exception {
PropertyValue p = new PropertyValue();
p.setFloat(FLOAT_VAL_4);
assertEquals(FLOAT_VAL_4, p.getFloat(), 0);
}
@Test
public void testIsDouble() throws Exception {
PropertyValue p = PropertyValue.create(DOUBLE_VAL_5);
assertFalse(p.isNull());
assertFalse(p.isBoolean());
assertFalse(p.isInt());
assertFalse(p.isLong());
assertFalse(p.isFloat());
assertTrue(p.isDouble());
assertFalse(p.isString());
assertFalse(p.isBigDecimal());
assertFalse(p.isGradoopId());
assertFalse(p.isMap());
assertFalse(p.isList());
assertFalse(p.isDate());
assertFalse(p.isTime());
assertFalse(p.isDateTime());
}
@Test
public void testGetDouble() throws Exception {
PropertyValue p = PropertyValue.create(DOUBLE_VAL_5);
assertEquals(DOUBLE_VAL_5, p.getDouble(), 0);
}
@Test
public void testSetDouble() throws Exception {
PropertyValue p = new PropertyValue();
p.setDouble(DOUBLE_VAL_5);
assertEquals(DOUBLE_VAL_5, p.getDouble(), 0);
}
@Test
public void testIsString() throws Exception {
PropertyValue p = PropertyValue.create(STRING_VAL_6);
assertFalse(p.isNull());
assertFalse(p.isBoolean());
assertFalse(p.isInt());
assertFalse(p.isLong());
assertFalse(p.isFloat());
assertFalse(p.isDouble());
assertTrue(p.isString());
assertFalse(p.isBigDecimal());
assertFalse(p.isGradoopId());
assertFalse(p.isMap());
assertFalse(p.isList());
assertFalse(p.isDate());
assertFalse(p.isTime());
assertFalse(p.isDateTime());
}
@Test
public void testGetString() throws Exception {
PropertyValue p = PropertyValue.create(STRING_VAL_6);
assertEquals(STRING_VAL_6, p.getString());
}
@Test
public void testSetString() throws Exception {
PropertyValue p = new PropertyValue();
p.setString(STRING_VAL_6);
assertEquals(STRING_VAL_6, p.getString());
}
@Test
public void testIsBigDecimal() throws Exception {
PropertyValue p = PropertyValue.create(BIG_DECIMAL_VAL_7);
assertFalse(p.isNull());
assertFalse(p.isBoolean());
assertFalse(p.isInt());
assertFalse(p.isLong());
assertFalse(p.isFloat());
assertFalse(p.isDouble());
assertFalse(p.isString());
assertTrue(p.isBigDecimal());
assertFalse(p.isGradoopId());
assertFalse(p.isMap());
assertFalse(p.isList());
assertFalse(p.isDate());
assertFalse(p.isTime());
assertFalse(p.isDateTime());
}
@Test
public void testGetBigDecimal() throws Exception {
PropertyValue p = PropertyValue.create(BIG_DECIMAL_VAL_7);
assertEquals(BIG_DECIMAL_VAL_7, p.getBigDecimal());
}
@Test
public void testSetBigDecimal() throws Exception {
PropertyValue p = new PropertyValue();
p.setBigDecimal(BIG_DECIMAL_VAL_7);
assertEquals(BIG_DECIMAL_VAL_7, p.getBigDecimal());
}
@Test
public void testIsGradoopId() throws Exception {
PropertyValue p = PropertyValue.create(GRADOOP_ID_VAL_8);
assertFalse(p.isNull());
assertFalse(p.isBoolean());
assertFalse(p.isInt());
assertFalse(p.isLong());
assertFalse(p.isFloat());
assertFalse(p.isDouble());
assertFalse(p.isString());
assertFalse(p.isBigDecimal());
assertTrue(p.isGradoopId());
assertFalse(p.isMap());
assertFalse(p.isList());
assertFalse(p.isDate());
assertFalse(p.isTime());
assertFalse(p.isDateTime());
}
@Test
public void testGetGradoopId() throws Exception {
PropertyValue p = PropertyValue.create(GRADOOP_ID_VAL_8);
assertEquals(GRADOOP_ID_VAL_8, p.getGradoopId());
}
@Test
public void testSetGradoopId() throws Exception {
PropertyValue p = new PropertyValue();
p.setGradoopId(GRADOOP_ID_VAL_8);
assertEquals(GRADOOP_ID_VAL_8, p.getGradoopId());
}
@Test
public void testIsMap() throws Exception {
PropertyValue p = PropertyValue.create(MAP_VAL_9);
assertFalse(p.isNull());
assertFalse(p.isBoolean());
assertFalse(p.isInt());
assertFalse(p.isLong());
assertFalse(p.isFloat());
assertFalse(p.isDouble());
assertFalse(p.isString());
assertFalse(p.isBigDecimal());
assertFalse(p.isGradoopId());
assertTrue(p.isMap());
assertFalse(p.isList());
assertFalse(p.isDate());
assertFalse(p.isTime());
assertFalse(p.isDateTime());
}
@Test
public void testGetMap() throws Exception {
PropertyValue p = PropertyValue.create(MAP_VAL_9);
assertEquals(MAP_VAL_9, p.getMap());
}
@Test
public void testSetMap() throws Exception {
PropertyValue p = new PropertyValue();
p.setMap(MAP_VAL_9);
assertEquals(MAP_VAL_9, p.getMap());
}
@Test
public void testIsList() throws Exception {
PropertyValue p = PropertyValue.create(LIST_VAL_a);
assertFalse(p.isNull());
assertFalse(p.isBoolean());
assertFalse(p.isInt());
assertFalse(p.isLong());
assertFalse(p.isFloat());
assertFalse(p.isDouble());
assertFalse(p.isString());
assertFalse(p.isBigDecimal());
assertFalse(p.isGradoopId());
assertFalse(p.isMap());
assertTrue(p.isList());
assertFalse(p.isDate());
assertFalse(p.isTime());
assertFalse(p.isDateTime());
}
@Test
public void testGetList() throws Exception {
PropertyValue p = PropertyValue.create(LIST_VAL_a);
assertEquals(LIST_VAL_a, p.getList());
}
@Test
public void testSetList() throws Exception {
PropertyValue p = new PropertyValue();
p.setList(LIST_VAL_a);
assertEquals(LIST_VAL_a, p.getList());
}
@Test
public void testIsDate() throws Exception {
PropertyValue p = PropertyValue.create(DATE_VAL_b);
assertFalse(p.isNull());
assertFalse(p.isBoolean());
assertFalse(p.isInt());
assertFalse(p.isLong());
assertFalse(p.isFloat());
assertFalse(p.isDouble());
assertFalse(p.isString());
assertFalse(p.isBigDecimal());
assertFalse(p.isGradoopId());
assertFalse(p.isMap());
assertFalse(p.isList());
assertTrue(p.isDate());
assertFalse(p.isTime());
assertFalse(p.isDateTime());
}
@Test
public void testGetDate() throws Exception {
PropertyValue p = PropertyValue.create(DATE_VAL_b);
assertEquals(DATE_VAL_b, p.getDate());
}
@Test
public void testSetDate() throws Exception {
PropertyValue p = new PropertyValue();
p.setDate(DATE_VAL_b);
assertEquals(DATE_VAL_b, p.getDate());
}
@Test
public void testIsTime() throws Exception {
PropertyValue p = PropertyValue.create(TIME_VAL_c);
assertFalse(p.isNull());
assertFalse(p.isBoolean());
assertFalse(p.isInt());
assertFalse(p.isLong());
assertFalse(p.isFloat());
assertFalse(p.isDouble());
assertFalse(p.isString());
assertFalse(p.isBigDecimal());
assertFalse(p.isGradoopId());
assertFalse(p.isMap());
assertFalse(p.isList());
assertFalse(p.isDate());
assertTrue(p.isTime());
assertFalse(p.isDateTime());
}
@Test
public void testGetTime() throws Exception {
PropertyValue p = PropertyValue.create(TIME_VAL_c);
assertEquals(TIME_VAL_c, p.getTime());
}
@Test
public void testSetTime() throws Exception {
PropertyValue p = new PropertyValue();
p.setTime(TIME_VAL_c);
assertEquals(TIME_VAL_c, p.getTime());
}
@Test
public void testIsDateTime() throws Exception {
PropertyValue p = PropertyValue.create(DATETIME_VAL_d);
assertFalse(p.isNull());
assertFalse(p.isBoolean());
assertFalse(p.isInt());
assertFalse(p.isLong());
assertFalse(p.isFloat());
assertFalse(p.isDouble());
assertFalse(p.isString());
assertFalse(p.isBigDecimal());
assertFalse(p.isGradoopId());
assertFalse(p.isMap());
assertFalse(p.isList());
assertFalse(p.isDate());
assertFalse(p.isTime());
assertTrue(p.isDateTime());
}
@Test
public void testGetDateTime() throws Exception {
PropertyValue p = PropertyValue.create(DATETIME_VAL_d);
assertEquals(DATETIME_VAL_d, p.getDateTime());
}
@Test
public void testSetDateTime() throws Exception {
PropertyValue p = new PropertyValue();
p.setDateTime(DATETIME_VAL_d);
assertEquals(DATETIME_VAL_d, p.getDateTime());
}
@Test
public void testEqualsAndHashCode() throws Exception {
validateEqualsAndHashCode(create(null), create(null), create(false));
validateEqualsAndHashCode(create(true), create(true), create(false));
validateEqualsAndHashCode(create(10), create(10), create(11));
validateEqualsAndHashCode(create(10L), create(10L), create(11L));
validateEqualsAndHashCode(create(10F), create(10F), create(11F));
validateEqualsAndHashCode(create(10.), create(10.), create(11.));
validateEqualsAndHashCode(create("10"), create("10"), create("11"));
validateEqualsAndHashCode(create(new BigDecimal(10)),
create(new BigDecimal(10)),
create(new BigDecimal(11)));
validateEqualsAndHashCode(
create(GradoopId.fromString("583ff8ffbd7d222690a90999")),
create(GradoopId.fromString("583ff8ffbd7d222690a90999")),
create(GradoopId.fromString("583ff8ffbd7d222690a9099a"))
);
Map<PropertyValue, PropertyValue> map1 = new HashMap<>();
map1.put(PropertyValue.create("foo"), PropertyValue.create("bar"));
Map<PropertyValue, PropertyValue> map2 = new HashMap<>();
map2.put(PropertyValue.create("foo"), PropertyValue.create("bar"));
Map<PropertyValue, PropertyValue> map3 = new HashMap<>();
map3.put(PropertyValue.create("foo"), PropertyValue.create("baz"));
validateEqualsAndHashCode(create(map1), create(map2), create(map3));
List<PropertyValue> list1 = Lists.newArrayList(
PropertyValue.create("foo"), PropertyValue.create("bar")
);
List<PropertyValue> list2 = Lists.newArrayList(
PropertyValue.create("foo"), PropertyValue.create("bar")
);
List<PropertyValue> list3 = Lists.newArrayList(
PropertyValue.create("foo"), PropertyValue.create("baz")
);
validateEqualsAndHashCode(create(list1), create(list2), create(list3));
LocalDate date1 = LocalDate.MAX;
LocalDate date2 = LocalDate.MAX;
LocalDate date3 = LocalDate.now();
validateEqualsAndHashCode(create(date1), create(date2), create(date3));
LocalTime time1 = LocalTime.MAX;
LocalTime time2 = LocalTime.MAX;
LocalTime time3 = LocalTime.now();
validateEqualsAndHashCode(create(time1), create(time2), create(time3));
LocalDateTime dateTime1 = LocalDateTime.of(date1, time1);
LocalDateTime dateTime2 = LocalDateTime.of(date2, time2);
LocalDateTime dateTime3 = LocalDateTime.of(date3, time3);
validateEqualsAndHashCode(create(dateTime1), create(dateTime2), create(dateTime3));
}
/**
* Assumes that p1.equals(p2) and !p2.equals(p3)
*/
private void validateEqualsAndHashCode(PropertyValue p1, PropertyValue p2,
PropertyValue p3) {
assertEquals(p1, p1);
assertEquals(p1, p2);
assertNotEquals(p1, p3);
assertTrue(p1.hashCode() == p1.hashCode());
assertTrue(p1.hashCode() == p2.hashCode());
assertFalse(p1.hashCode() == p3.hashCode());
}
@Test
public void testCompareTo() throws Exception {
assertTrue(create(null).compareTo(create(null)) == 0);
validateCompareTo(create(false), create(false), create(true));
validateCompareTo(create(-10), create(-10), create(10));
validateCompareTo(create(10), create(10), create(12));
validateCompareTo(create(-10L), create(-10L), create(12L));
validateCompareTo(create(10L), create(10L), create(12L));
validateCompareTo(create(-10F), create(-10F), create(12F));
validateCompareTo(create(10F), create(10F), create(12F));
validateCompareTo(create(-10.), create(-10.), create(12.));
validateCompareTo(create(10.), create(10.), create(12.));
validateCompareTo(create("10"), create("10"), create("12"));
validateCompareTo(create(new BigDecimal(-10)),
create(new BigDecimal(-10)),
create(new BigDecimal(11)));
validateCompareTo(create(new BigDecimal(10)),
create(new BigDecimal(10)),
create(new BigDecimal(11)));
validateCompareTo(
create(GradoopId.fromString("583ff8ffbd7d222690a90999")),
create(GradoopId.fromString("583ff8ffbd7d222690a90999")),
create(GradoopId.fromString("583ff8ffbd7d222690a9099a"))
);
}
@Test(expected = IllegalArgumentException.class)
public void testCompareToWithIncompatibleTypes() {
create(10).compareTo(create(10L));
}
@Test(expected = UnsupportedOperationException.class)
public void testCompareToWithMap() {
create(MAP_VAL_9).compareTo(create(MAP_VAL_9));
}
@Test(expected = UnsupportedOperationException.class)
public void testCompareToWithList() {
create(LIST_VAL_a).compareTo(create(LIST_VAL_a));
}
@Test
public void testWriteAndReadFields() throws IOException {
PropertyValue p = create(NULL_VAL_0);
assertEquals(p, writeAndReadFields(PropertyValue.class, p));
p = create(BOOL_VAL_1);
assertEquals(p, writeAndReadFields(PropertyValue.class, p));
p = create(INT_VAL_2);
assertEquals(p, writeAndReadFields(PropertyValue.class, p));
p = create(LONG_VAL_3);
assertEquals(p, writeAndReadFields(PropertyValue.class, p));
p = create(FLOAT_VAL_4);
assertEquals(p, writeAndReadFields(PropertyValue.class, p));
p = create(DOUBLE_VAL_5);
assertEquals(p, writeAndReadFields(PropertyValue.class, p));
p = create(STRING_VAL_6);
assertEquals(p, writeAndReadFields(PropertyValue.class, p));
p = create(BIG_DECIMAL_VAL_7);
assertEquals(p, writeAndReadFields(PropertyValue.class, p));
p = create(GRADOOP_ID_VAL_8);
assertEquals(p, writeAndReadFields(PropertyValue.class, p));
p = create(MAP_VAL_9);
assertEquals(p, writeAndReadFields(PropertyValue.class, p));
p = create(LIST_VAL_a);
assertEquals(p, writeAndReadFields(PropertyValue.class, p));
p = create(DATE_VAL_b);
assertEquals(p, writeAndReadFields(PropertyValue.class, p));
p = create(TIME_VAL_c);
assertEquals(p, writeAndReadFields(PropertyValue.class, p));
p = create(DATETIME_VAL_d);
assertEquals(p, writeAndReadFields(PropertyValue.class, p));
}
/**
* Assumes that p1 == p2 < p3
*/
private void validateCompareTo(PropertyValue p1, PropertyValue p2,
PropertyValue p3) {
assertTrue(p1.compareTo(p1) == 0);
assertTrue(p1.compareTo(p2) == 0);
assertTrue(p2.compareTo(p1) == 0);
assertTrue(p1.compareTo(p3) < 0);
assertTrue(p3.compareTo(p1) > 0);
assertTrue(p3.compareTo(p2) > 0);
}
}