package org.openflamingo.mapreduce.etl.replace;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.NullWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mrunit.mapreduce.MapDriver;
import org.junit.Before;
import org.junit.Test;
import org.openflamingo.mapreduce.etl.replace.delimiter.ReplaceDelimiterMapper;
/**
* Replace Delimiter Mapper에 대한 단위 테스트 케이스.
*
* @author Edward KIM
* @author Seo Ji Hye
* @since 1.0
*/
public class ReplaceDelimiterMapperTest {
private Mapper mapper;
private MapDriver driver;
@Before
public void setUp() {
mapper = new ReplaceDelimiterMapper();
driver = new MapDriver(mapper);
}
@Test
public void testSingleCharInputDelimiter() {
Configuration conf = new Configuration();
conf.set("from", ":");
conf.set("to", ",");
driver.setConfiguration(conf);
driver.withInput(new LongWritable(1), new Text("1:2:3:4"));
driver.withOutput(NullWritable.get(), new Text("1,2,3,4"));
driver.runTest();
}
@Test
public void testSingleCharInputDeliToMultiCharOutDeli() {
Configuration conf = new Configuration();
conf.set("from", ",");
conf.set("to", "::");
driver.setConfiguration(conf);
driver.withInput(new LongWritable(1), new Text("1,2,3,4"));
driver.withOutput(NullWritable.get(), new Text("1::2::3::4"));
driver.runTest();
}
@Test
public void testMultiCharInputDelimiter() {
Configuration conf = new Configuration();
conf.set("from", "::");
conf.set("to", ",");
driver.setConfiguration(conf);
driver.withInput(new LongWritable(1), new Text("1::2::3::4"));
driver.withOutput(NullWritable.get(), new Text("1,2,3,4"));
driver.runTest();
}
}