package com.github.davidmoten.rtree;
import static org.junit.Assert.assertEquals;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import org.junit.Ignore;
import org.junit.Test;
import com.esotericsoftware.kryo.Kryo;
import com.esotericsoftware.kryo.io.Input;
import com.esotericsoftware.kryo.io.Output;
import com.github.davidmoten.rtree.geometry.Geometries;
import com.github.davidmoten.rtree.geometry.Point;
public class KryoSerializationTest {
@Test
@Ignore
public void testRTree() {
Kryo kryo = new Kryo();
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
Output output = new Output(bytes);
RTree<String, Point> tree = RTree.<String, Point> create()
.add(Entries.entry("thing", Geometries.point(10, 20)))
.add(Entries.entry("monster", Geometries.point(23, 45)));
kryo.writeObject(output, tree);
output.close();
Input input = new Input(new ByteArrayInputStream(bytes.toByteArray()));
RTree<String, Point> tree2 = kryo.readObject(input, RTree.class);
assertEquals(2, (int) tree2.entries().count().toBlocking().single());
}
@Test
public void testKryo() {
Kryo kryo = new Kryo();
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
Output output = new Output(bytes);
Boo b = new Boo("hello");
kryo.writeObject(output, b);
output.close();
Input input = new Input(new ByteArrayInputStream(bytes.toByteArray()));
Boo b2 = kryo.readObject(input, Boo.class);
assertEquals("hello", b2.name);
}
public static class Boo {
public final String name;
private Boo() {
this("boo");
}
public Boo(String name) {
this.name = name;
}
}
}