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