@Test
public void addField() {
long longValue = random.nextLong();
double doubleValue = random.nextDouble();
TestClassLongDouble object = new TestClassLongDouble();
object.longField = longValue;
object.doubleField = doubleValue;
Mockito.when(classSchema.getFieldMarker("longField")).thenReturn(Integer.valueOf(1));
Mockito.when(classSchema.getFieldMarker("doubleField")).thenReturn(Integer.valueOf(2));
Kryo kryo = new Kryo();
kryo.register(TestClassLongDouble.class, new CustomCompatibleFieldSerializer<TestClassLongDouble>(kryo, TestClassLongDouble.class, classSchemaManager));
Output output = new Output(1024);
kryo.writeClassAndObject(output, object);
Mockito.when(classSchema.getFieldMarker("floatField")).thenReturn(Integer.valueOf(3));
kryo = new Kryo();
kryo.register(TestClassLongDoubleFloat.class, new CustomCompatibleFieldSerializer<TestClassLongDoubleFloat>(kryo, TestClassLongDoubleFloat.class, classSchemaManager));
Input input = new Input(output.getBuffer());
Object deserialized = kryo.readClassAndObject(input);
assertThat(deserialized, is(instanceOf(TestClassLongDoubleFloat.class)));
TestClassLongDoubleFloat deserializedTestClass = (TestClassLongDoubleFloat) deserialized;
assertThat(deserializedTestClass.longField, is(equalTo(longValue)));
assertThat(deserializedTestClass.doubleField, is(equalTo(doubleValue)));
assertThat(deserializedTestClass.floatField, is(equalTo(0F)));
}