1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.hadoop.chukwa.extraction.demux;
19
20 import org.apache.hadoop.chukwa.extraction.engine.ChukwaRecordKey;
21 import org.apache.hadoop.chukwa.extraction.engine.ChukwaRecord;
22 import org.apache.hadoop.chukwa.extraction.demux.processor.mapper.ChukwaTestOutputCollector;
23 import org.apache.hadoop.mapred.Reporter;
24 import org.apache.hadoop.mapred.JobConf;
25 import org.apache.hadoop.mapred.Reducer;
26 import junit.framework.TestCase;
27
28 import java.io.IOException;
29
30
31
32
33 public class TestDemuxReducerConfigs extends TestCase {
34
35 public static String SAMPLE_RECORD_DATA = "sampleRecordData";
36
37 public void testSetDefaultReducerProcessor() throws IOException {
38 Reducer<ChukwaRecordKey, ChukwaRecord, ChukwaRecordKey, ChukwaRecord> reducer =
39 new Demux.ReduceClass();
40
41 JobConf conf = new JobConf();
42 conf.set("chukwa.demux.reducer.default.processor", "MockReduceProcessor");
43 reducer.configure(conf);
44
45 ChukwaRecordKey key = new ChukwaRecordKey("someReduceType", "someKey");
46 ChukwaTestOutputCollector<ChukwaRecordKey, ChukwaRecord> output =
47 new ChukwaTestOutputCollector<ChukwaRecordKey, ChukwaRecord>();
48
49 reducer.reduce(key, null, output, Reporter.NULL);
50
51 assertEquals("MockReduceProcessor never invoked - no records found", 1, output.data.size());
52 assertNotNull("MockReduceProcessor never invoked", output.data.get(key));
53 assertEquals("MockReduceProcessor never invoked - key value incorrect",
54 "MockReduceProcessorValue",
55 output.data.get(key).getValue("MockReduceProcessorKey"));
56 }
57 }