package edu.washington.escience.myria.column; import static org.junit.Assert.assertTrue; import java.io.IOException; import java.nio.BufferOverflowException; import java.nio.ByteBuffer; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import org.junit.Test; import edu.washington.escience.myria.column.BlobColumn; import edu.washington.escience.myria.column.builder.BlobColumnBuilder; import edu.washington.escience.myria.proto.DataProto.ColumnMessage; public class BlobColumnTest { @Test public void testProto() { final BlobColumnBuilder original = new BlobColumnBuilder(); original.appendBlob(ByteBuffer.wrap("Test1".getBytes())); final ColumnMessage serialized = original.build().serializeToProto(); final BlobColumn deserialized = BlobColumnBuilder.buildFromProtobuf(serialized, original.size()); assertTrue(original.size() == deserialized.size()); } @Test(expected = BufferOverflowException.class) public void testFull() { final BlobColumnBuilder original = new BlobColumnBuilder(); original .appendBlob(ByteBuffer.wrap("First".getBytes())) .appendBlob(ByteBuffer.wrap("Second".getBytes())) .appendBlob(ByteBuffer.wrap("Third".getBytes())) .appendBlob(ByteBuffer.wrap("NextIsEmptyString".getBytes())) .appendBlob(ByteBuffer.wrap("".getBytes())) .appendBlob(ByteBuffer.wrap("VeryVeryVeryVeryVeryVeryVeryVeryLongLast".getBytes())); original.build(); } protected byte[] readbb() { Path filename = Paths.get(Paths.get("testdata", "pythonUDF", "1.p").toString()); byte[] data = null; try { data = Files.readAllBytes(filename); } catch (IOException e) { e.printStackTrace(); } return data; } }