package com.thinkaurelius.faunus; import junit.framework.TestCase; import org.apache.hadoop.io.WritableComparator; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; /** * @author Marko A. Rodriguez (http://markorodriguez.com) */ public class HolderTest extends TestCase { public void testRawComparison() throws IOException { Holder<FaunusVertex> holder1 = new Holder<FaunusVertex>('a', new FaunusVertex(10)); Holder<FaunusVertex> holder2 = new Holder<FaunusVertex>('b', new FaunusVertex(11)); ByteArrayOutputStream bytes1 = new ByteArrayOutputStream(); holder1.write(new DataOutputStream(bytes1)); ByteArrayOutputStream bytes2 = new ByteArrayOutputStream(); holder2.write(new DataOutputStream(bytes2)); assertEquals(-1, WritableComparator.get(Holder.class).compare(bytes1.toByteArray(), 0, bytes1.size(), bytes2.toByteArray(), 0, bytes2.size())); assertEquals(1, WritableComparator.get(Holder.class).compare(bytes2.toByteArray(), 0, bytes2.size(), bytes1.toByteArray(), 0, bytes1.size())); assertEquals(0, WritableComparator.get(Holder.class).compare(bytes1.toByteArray(), 0, bytes1.size(), bytes1.toByteArray(), 0, bytes1.size())); } public void testSerialization1() throws IOException { FaunusVertex vertex = new FaunusVertex(1l); Holder<FaunusVertex> holder1 = new Holder<FaunusVertex>('a', vertex); assertEquals(holder1.get(), vertex); assertEquals(holder1.getTag(), 'a'); ByteArrayOutputStream bytes = new ByteArrayOutputStream(); holder1.write(new DataOutputStream(bytes)); Holder<FaunusVertex> holder2 = new Holder<FaunusVertex>(new DataInputStream(new ByteArrayInputStream(bytes.toByteArray()))); assertEquals(holder1, holder2); assertEquals(holder2.get(), vertex); assertEquals(holder2.getTag(), 'a'); assertEquals(holder1.compareTo(holder2), 0); } /*public void testRawComparator() throws IOException { Holder.Comparator comparator = new Holder.Comparator(); comparator.compare() }*/ }