package de.javakaffee.kryoserializers.guava;
import com.esotericsoftware.kryo.Kryo;
import com.google.common.collect.*;
import static org.testng.Assert.*;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
import static de.javakaffee.kryoserializers.KryoTest.deserialize;
import static de.javakaffee.kryoserializers.KryoTest.serialize;
/**
* Test for {@link ImmutableSetSerializer}.
*/
public class ImmutableSetSerializerTest {
private Kryo _kryo;
@BeforeTest
public void setUp() throws Exception {
_kryo = new Kryo();
ImmutableSetSerializer.registerSerializers(_kryo);
}
@Test
public void testEmpty() {
final ImmutableSet<?> obj = ImmutableSet.of();
final byte[] serialized = serialize( _kryo, obj );
final ImmutableSet<?> deserialized = deserialize(_kryo, serialized, ImmutableSet.class);
assertTrue(deserialized.isEmpty());
assertEquals(deserialized.size(), obj.size());
}
@Test
public void testSingleton() {
final ImmutableSet<?> obj = ImmutableSet.of(3);
final byte[] serialized = serialize( _kryo, obj );
final ImmutableSet<?> deserialized = deserialize(_kryo, serialized, ImmutableSet.class);
assertEquals(deserialized, obj);
}
@Test
public void testRegular() {
final ImmutableSet<?> obj = ImmutableSet.of(3, 4, 5, 6);
final byte[] serialized = serialize( _kryo, obj );
final ImmutableSet<?> deserialized = deserialize(_kryo, serialized, ImmutableSet.class);
assertEquals(deserialized, obj);
}
@Test
public void testStringAsImmutableSet() {
final ImmutableSet<?> obj = ImmutableSet.of("K","r", "y", "o");
final byte[] serialized = serialize(_kryo, obj);
final ImmutableSet<?> deserialized = deserialize(_kryo, serialized, ImmutableSet.class);
assertEquals(deserialized, obj);
}
// Kryo#copy tests
@Test
public void testCopyEmpty() {
final ImmutableSet<?> obj = ImmutableSet.of();
final ImmutableSet<?> copied = _kryo.copy(obj);
assertSame(copied, obj);
}
@Test
public void testCopySingleton() {
final ImmutableSet<?> obj = ImmutableSet.of(1);
final ImmutableSet<?> copied = _kryo.copy(obj);
assertSame(copied, obj);
}
@Test
public void testCopyRegular() {
final ImmutableSet<?> obj = ImmutableSet.of(1, 2, 3);
final ImmutableSet<?> copied = _kryo.copy(obj);
assertSame(copied, obj);
}
}