package org.apache.hadoop.hive.kafka.demoproducer; import org.apache.avro.Schema; import org.apache.avro.generic.GenericData; import org.apache.avro.generic.GenericDatumReader; import org.apache.avro.generic.GenericRecord; import org.apache.avro.io.BinaryDecoder; import org.apache.avro.io.BinaryEncoder; import org.apache.avro.io.DatumReader; import org.apache.avro.io.DecoderFactory; import org.apache.avro.io.EncoderFactory; import org.junit.Test; import org.junit.Assert; public class BaseProducerTest { @Test public void testSerializeAvro() throws Exception { Schema schema = new Schema.Parser().parse("{\n" + "\t\"type\":\"record\",\n" + "\t\"name\":\"test_schema_1\",\n" + "\t\"fields\" : [ {\n" + "\t\t\"name\":\"a\",\n" + "\t\t\"type\":\"int\"\n" + "\t\t},\n" + "\t\t{\n" + "\t\t\"name\":\"b\",\n" + "\t\t\"type\":\"string\"\n" + "\t\t}\n" + "\t\t]\n" + "}"); GenericRecord event = new GenericData.Record(schema); event.put("a", 1); event.put("b", "static string"); byte[] m = BaseProducer.serializeAvro(schema,event); DatumReader<GenericData.Record> reader = new GenericDatumReader<GenericData.Record>(schema); BinaryDecoder binaryDecoder = DecoderFactory.get().binaryDecoder(m,null); GenericRecord record = reader.read(null,binaryDecoder); Assert.assertEquals(record,event); } }