diff options
Diffstat (limited to 'src/test/java/io/trygvis/btree/BtreeMapTest.java')
-rw-r--r-- | src/test/java/io/trygvis/btree/BtreeMapTest.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/test/java/io/trygvis/btree/BtreeMapTest.java b/src/test/java/io/trygvis/btree/BtreeMapTest.java new file mode 100644 index 0000000..3c771a8 --- /dev/null +++ b/src/test/java/io/trygvis/btree/BtreeMapTest.java @@ -0,0 +1,45 @@ +package io.trygvis.btree; + +import org.junit.Test; + +import java.io.File; +import java.nio.ByteBuffer; + +import static io.trygvis.btree.Bits.intFromBytes; +import static io.trygvis.btree.HeapTest.Person.randomPerson; +import static io.trygvis.btree.TestUtils.deleteFile; + +public class BtreeMapTest { + + @Test + public void testBasic() throws Exception { + File f = new File("target/btreemap"); + BtreeMap<Integer, HeapTest.Person> map = new BtreeMap<>(new BtreeFile(new HeapFile(128, deleteFile(f)), 4), new IntegerSerializer(), new PersonSerializer()); + + map.put(1, randomPerson()); + } + + private static class IntegerSerializer implements BtreeMap.Serializer<Integer> { + @Override + public byte[] toBytes(Integer integer) { + return Bits.toBytes(integer); + } + + @Override + public Integer fromBytes(byte[] bytes) { + return intFromBytes(bytes); + } + } + + private static class PersonSerializer implements BtreeMap.Serializer<HeapTest.Person> { + @Override + public byte[] toBytes(HeapTest.Person person) { + return person.toBytes(); + } + + @Override + public HeapTest.Person fromBytes(byte[] bytes) { + return HeapTest.Person.fromBytes(ByteBuffer.wrap(bytes)); + } + } +} |