use of com.hazelcast.nio.serialization.GenericRecord in project hazelcast by hazelcast.
the class GenericRecordTest method testGenericRecordToStringValidJson.
@Test
public void testGenericRecordToStringValidJson() throws IOException {
CompactSerializationConfig compactSerializationConfig = new CompactSerializationConfig();
compactSerializationConfig.setEnabled(true);
InternalSerializationService serializationService = new DefaultSerializationServiceBuilder().setSchemaService(schemaService).setConfig(new SerializationConfig().setCompactSerializationConfig(compactSerializationConfig)).build();
MainDTO expectedDTO = createMainDTO();
expectedDTO.nullableBool = null;
expectedDTO.p.localDateTimes[0] = null;
Data data = serializationService.toData(expectedDTO);
assertTrue(data.isCompact());
// internal generic record created on the servers on query
InternalGenericRecord internalGenericRecord = serializationService.readAsInternalGenericRecord(data);
String string = internalGenericRecord.toString();
Json.parse(string);
// generic record read from a remote instance without classes on the classpath
List<String> excludes = Collections.singletonList("example.serialization");
FilteringClassLoader classLoader = new FilteringClassLoader(excludes, null);
ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(classLoader);
InternalSerializationService ss2 = new DefaultSerializationServiceBuilder().setSchemaService(schemaService).setClassLoader(classLoader).setConfig(new SerializationConfig().setCompactSerializationConfig(new CompactSerializationConfig())).build();
GenericRecord genericRecord = ss2.toObject(data);
Json.parse(genericRecord.toString());
// generic record build by API
GenericRecord apiGenericRecord = createCompactGenericRecord(expectedDTO);
Json.parse(apiGenericRecord.toString());
} finally {
Thread.currentThread().setContextClassLoader(contextClassLoader);
}
}
use of com.hazelcast.nio.serialization.GenericRecord in project hazelcast by hazelcast.
the class GenericRecordTest method testBuildFromObjectCreatedViaAPI.
@Test
public void testBuildFromObjectCreatedViaAPI() {
GenericRecordBuilder builder = compact("fooBarTypeName");
builder.setInt32("foo", 1);
assertTrue(trySetAndGetMessage("foo", 5, builder).startsWith("Field can only be written once"));
builder.setInt64("bar", 1231L);
GenericRecord genericRecord = builder.build();
GenericRecordBuilder recordBuilder = genericRecord.newBuilder();
recordBuilder.setInt32("foo", 2);
assertTrue(trySetAndGetMessage("foo", 5, recordBuilder).startsWith("Field can only be written once"));
assertTrue(trySetAndGetMessage("notExisting", 3, recordBuilder).startsWith("Invalid field name"));
assertTrue(tryBuildAndGetMessage(recordBuilder).startsWith("Found an unset field"));
recordBuilder.setInt64("bar", 100);
GenericRecord newRecord = recordBuilder.build();
assertEquals(2, newRecord.getInt32("foo"));
assertEquals(100, newRecord.getInt64("bar"));
}
use of com.hazelcast.nio.serialization.GenericRecord in project hazelcast by hazelcast.
the class CompactStreamSerializerTest method testGenericRecordHashcode_Equals.
@Test
public void testGenericRecordHashcode_Equals() {
SerializationService serializationService = createSerializationService();
MainDTO expectedDTO = createMainDTO();
GenericRecord expectedGenericRecord = createCompactGenericRecord(expectedDTO);
Data data = serializationService.toData(expectedGenericRecord);
Object object = serializationService.toObject(data);
GenericRecord genericRecord = (GenericRecord) object;
assertTrue(expectedGenericRecord.equals(genericRecord));
assertTrue(genericRecord.equals(expectedGenericRecord));
assertEquals(expectedGenericRecord.hashCode(), genericRecord.hashCode());
}
use of com.hazelcast.nio.serialization.GenericRecord in project hazelcast by hazelcast.
the class CompactWithSchemaStreamSerializerTest method testFromGenericRecord.
@Test
public void testFromGenericRecord() {
SerializationService serializationService = createSerializationService();
GenericRecord expected = compact("fooBarTypeName").setInt32("foo", 1).setInt64("bar", 1231L).setGenericRecord("nested", compact("nested").setBoolean("bool", true).build()).build();
Data data = serializationService.toDataWithSchema(expected);
// Create a second schema service so that schemas are not shared across these two
// This is to make sure that toObject call will use the schema in the data
SerializationService serializationService2 = createSerializationService();
GenericRecord actual = serializationService2.toObject(data);
assertEquals(expected, actual);
}
use of com.hazelcast.nio.serialization.GenericRecord in project hazelcast by hazelcast.
the class CompactWithSchemaStreamSerializerTest method testReadAsGenericRecord.
@Test
public void testReadAsGenericRecord() throws IOException {
SerializationService serializationService = createSerializationService();
GenericRecord expected = compact("fooBarTypeName").setInt32("foo", 1).setInt64("bar", 1231L).setGenericRecord("nested", compact("nested").setBoolean("bool", true).build()).build();
Data data = serializationService.toDataWithSchema(expected);
// Create a second schema service so that schemas are not shared across these two
// This is to make sure that toObject call will use the schema in the data
InternalSerializationService serializationService2 = createSerializationService();
GenericRecord actual = serializationService2.toObject(data);
assertEquals(expected, actual);
}
Aggregations