package com.twitter.elephantbird.util; import static org.junit.Assert.assertEquals; import org.junit.Test; import com.google.common.base.Function; import com.google.protobuf.Message; import com.twitter.data.proto.tutorial.AddressBookProtos.AddressBook; import com.twitter.data.proto.tutorial.AddressBookProtos.Person; import com.twitter.elephantbird.mapreduce.io.DecodeException; import com.twitter.elephantbird.mapreduce.io.ProtobufConverter; import com.twitter.elephantbird.pig.piggybank.Fixtures; import com.twitter.elephantbird.util.Protobufs; public class TestProtobufs { private static final AddressBook ab_ = Fixtures.buildAddressBookProto(); private static final byte[] abBytes_ = ab_.toByteArray(); @Test public void testGetInnerProtobufClass() { String canonicalClassName = "com.twitter.data.proto.tutorial.AddressBookProtos.Person"; Class<? extends Message> klass = Protobufs.getInnerProtobufClass(canonicalClassName); assertEquals(klass, Person.class); } @Test public void testDynamicParsing() { assertEquals(ab_, Protobufs.parseDynamicFrom(AddressBook.class, abBytes_)); } @Test public void testStaticParsing() { assertEquals(ab_, Protobufs.parseFrom(AddressBook.class, abBytes_)); } @Test public void testConverterParsing() throws DecodeException { ProtobufConverter<AddressBook> protoConverter = ProtobufConverter.newInstance(AddressBook.class); assertEquals(ab_, protoConverter.fromBytes(abBytes_)); } }