package tap.formats.tapproto; import java.io.File; import java.util.List; import java.util.StringTokenizer; import junit.framework.Assert; import org.junit.Test; import tap.CommandOptions; import tap.CountRec; import tap.Phase; import tap.PhaseError; import tap.Pipe; import tap.Tap; import tap.TapMapper; import tap.TapReducer; import tap.core.WordCountMapper; import tap.core.WordCountReducer; import tap.formats.Formats; import tap.formats.tapproto.Testmsg; import tap.formats.tapproto.Testmsg.TestMsg; public class TapprotoTests { @Test public void Test1() { String args[] = { "TapprotoTest1", "-i", "share/test_data.avro", "-o", "/tmp/out", "--force" }; CommandOptions o = new CommandOptions(args); Tap tap = new Tap(o); tap.createPhase().reads(o.input).map(MapperAvroTapproto.class).sortBy("group, extra, subsort").writes(o.output); int rc = tap.make(); Assert.assertEquals(0, rc); File f = new File(o.output+"/part-00000.tapproto"); System.out.println(f.length()); Assert.assertTrue(f.exists()); //should compare against pre-defined output. } @Test public void Test2() { String args[] = { "TapProtoMapReduceTest", "-i", "share/test_data.tapproto", "-o", "/tmp/out", "--force" }; CommandOptions o = new CommandOptions(args); Tap tap = new Tap(o); tap.createPhase().reads(o.input).map(MapperTapprotoTapproto.class).reduce(ReducerTapprotoTapproto.class).sortBy("subsort, extra").writes(o.output); int rc = tap.make(); Assert.assertEquals(0, rc); File f = new File(o.output+"/part-00000.tapproto"); System.out.println(f.length()); Assert.assertTrue(f.exists()); //should compare against pre-defined output. } public static class Record { public String group; public String extra; public String subsort; } public static class MapperTapprotoTapproto extends TapMapper<Testmsg.TestRecord, Testmsg.TestRecord> { public void map(Testmsg.TestRecord msg, Pipe<Testmsg.TestRecord> out) { out.put(msg); } } public static class MapperAvroTapproto extends TapMapper<Record, Testmsg.TestRecord> { public void map(Record avro_record, Pipe<Testmsg.TestRecord> out) { Testmsg.TestRecord record = Testmsg.TestRecord.newBuilder().setGroup(avro_record.group).setExtra(avro_record.extra).setSubsort(avro_record.subsort).build(); out.put(record); } } public static class ReducerTapprotoTapproto extends TapReducer<Testmsg.TestRecord, Testmsg.TestRecord> { public void reduce(Pipe<Testmsg.TestRecord> in, Pipe<Testmsg.TestRecord> out) { for(Testmsg.TestRecord msg : in) { out.put(msg); //System.out.println(msg.getGroup() + " " + msg.getExtra() + " " + msg.getSubsort()); } } } }