Skip to content

Commit

Permalink
Add some test case for kryo
Browse files Browse the repository at this point in the history
  • Loading branch information
Mr14huashao committed Aug 31, 2020
1 parent 6314632 commit 5889938
Show file tree
Hide file tree
Showing 6 changed files with 87 additions and 0 deletions.
36 changes: 36 additions & 0 deletions test/com/esotericsoftware/kryo/CopyTest.java
Expand Up @@ -23,6 +23,7 @@

import java.util.ArrayList;

import com.esotericsoftware.kryo.serializers.FieldSerializer;
import org.junit.Before;
import org.junit.Test;

Expand Down Expand Up @@ -163,4 +164,39 @@ public void testShallow () {
public static class Moo {
Moo moo;
}

@Test
public void testCopyShallow(){
final Kryo kryo = new Kryo();
kryo.register(CopyData.class);
final CopyData copyData = new CopyData();
copyData.setCustomNote(true);
copyData.setCid(199);
final Serializer copySerializer = new FieldSerializer(kryo, CopyData.class);
final CopyData serializerCopy = kryo.copyShallow(copyData,copySerializer);
final CopyData copy = kryo.copyShallow(copyData);
assertEquals(copy.getCustomNote(),serializerCopy.getCustomNote());
assertEquals(copy.getCid(),serializerCopy.getCid());
}

static class CopyData {
private Integer cid = 1;
private Boolean customNote = true;

public void setCid(Integer cid) {
this.cid = cid;
}

public int getCid() {
return this.cid;
}

public void setCustomNote(Boolean customNote) {
this.customNote = customNote;
}

public Boolean getCustomNote() {
return this.customNote;
}
}
}
9 changes: 9 additions & 0 deletions test/com/esotericsoftware/kryo/RegistrationTest.java
Expand Up @@ -40,6 +40,15 @@ public void testDefaultSerializerOrder () {
assertSame(appleSerializer, kryo.getDefaultSerializer(Apple.class));
}

@Test
public void testDefaultSerializerBuild () {
final Kryo kryo = new Kryo();
kryo.addDefaultSerializer(Fruit.class, new SerializerFactory.FieldSerializerFactory());
final FieldSerializer appleSerializer = new FieldSerializer(kryo, Apple.class);
kryo.addDefaultSerializer(Apple.class, appleSerializer);
assertSame(appleSerializer, kryo.getDefaultSerializer(Apple.class));
}

@Test
public void testReplaceRegistration () throws IOException {
Kryo kryo = new Kryo();
Expand Down
Expand Up @@ -654,6 +654,15 @@ public int hashCode () {
}
}

@Test
public void testCompatibleFieldSerializerFactoryBuild() {
final SerializerFactory.CompatibleFieldSerializerFactory factory = new SerializerFactory.CompatibleFieldSerializerFactory();
factory.getConfig().setExtendedFieldNames(true);
final SerializerFactory.CompatibleFieldSerializerFactory factoryBuild = new SerializerFactory.CompatibleFieldSerializerFactory(factory.getConfig());

assertEquals(factory.getConfig().extendedFieldNames,factoryBuild.getConfig().extendedFieldNames);
}

@Test
public void testExtendedFieldNamesDefault() throws IOException {
final ClassWithDuplicateField duplicateField = new ClassWithDuplicateField();
Expand Down
Expand Up @@ -530,6 +530,15 @@ public void testTransientsUsingGlobalConfig () {
assertEquals("Objects should be equal if copy includes transient fields", objectWithTransients2, objectWithTransients1);
}

@Test
public void testFieldSerializerFactoryBuild() {
final FieldSerializerFactory factory = new FieldSerializerFactory();
factory.getConfig().setCopyTransient(false);
final FieldSerializerFactory factoryBuild = new FieldSerializerFactory(factory.getConfig());

assertEquals(factory.getConfig().copyTransient,factoryBuild.getConfig().copyTransient);
}

@Test
public void testSerializeTransients () {
kryo.register(HasTransients.class);
Expand Down
Expand Up @@ -23,6 +23,7 @@

import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.KryoTestCase;
import com.esotericsoftware.kryo.SerializerFactory;
import com.esotericsoftware.kryo.SerializerFactory.TaggedFieldSerializerFactory;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
Expand Down Expand Up @@ -156,6 +157,17 @@ public void testInvalidTagValue () {
assertTrue(receivedIAE);
}

@Test
public void testTaggedFieldSerializerFactoryBuild() {
final SerializerFactory.TaggedFieldSerializerFactory factory = new SerializerFactory.TaggedFieldSerializerFactory();
factory.getConfig().setReadUnknownTagData(true);
factory.getConfig().setChunkSize(1024);
final SerializerFactory.TaggedFieldSerializerFactory factoryBuild = new SerializerFactory.TaggedFieldSerializerFactory(factory.getConfig());

assertEquals(factory.getConfig().readUnknownTagData,factoryBuild.getConfig().readUnknownTagData);
assertEquals(factory.getConfig().chunkSize,factoryBuild.getConfig().chunkSize);
}

public static class TestClass {
@Tag(0) public String text = "something";
@Tag(1) public int moo = 120;
Expand Down
Expand Up @@ -22,6 +22,7 @@
import static org.junit.Assert.*;

import com.esotericsoftware.kryo.KryoTestCase;
import com.esotericsoftware.kryo.SerializerFactory;
import com.esotericsoftware.kryo.serializers.VersionFieldSerializer.Since;

import org.junit.Test;
Expand All @@ -31,6 +32,17 @@ public class VersionedFieldSerializerTest extends KryoTestCase {
supportsCopy = true;
}

@Test
public void testVersionFieldSerializerFactoryBuild() {
final SerializerFactory.VersionFieldSerializerFactory factory = new SerializerFactory.VersionFieldSerializerFactory();
factory.getConfig().setFieldsCanBeNull(false);
factory.getConfig().setFieldsAsAccessible(false);
final SerializerFactory.VersionFieldSerializerFactory factoryBuild = new SerializerFactory.VersionFieldSerializerFactory(factory.getConfig());

assertEquals(factory.getConfig().fieldsCanBeNull,factoryBuild.getConfig().fieldsCanBeNull);
assertEquals(factory.getConfig().getSetFieldsAsAccessible(),factoryBuild.getConfig().getSetFieldsAsAccessible());
}

@Test
public void testVersionFieldSerializer () {
TestClass object1 = new TestClass();
Expand Down

0 comments on commit 5889938

Please sign in to comment.