package edu.isi.karma.mapreduce.driver;
import java.io.IOException;
import java.util.List;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.Writable;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.Reducer;
import org.apache.hadoop.mrunit.mapreduce.MapDriver;
import org.apache.hadoop.mrunit.mapreduce.MapReduceDriver;
import org.apache.hadoop.mrunit.mapreduce.ReduceDriver;
import org.apache.hadoop.mrunit.types.Pair;
import org.junit.Before;
import org.junit.Test;
public class TestIdentityN3ToJSONReducer extends TestRDFMapReduce{
MapDriver<Writable, Text, Text, Text> mapDriver;
ReduceDriver<Text, Text, Text, Text> reduceDriver;
MapReduceDriver<Writable, Text, Text, Text, Text, Text> mapReduceDriver;
@Before
public void setUp() throws Exception {
Mapper<Writable,Text, Text, Text> mapper = new IdentityN3Mapper();
Reducer<Text,Text,Text,Text> reducer = new N3ToJSONReducer();
mapDriver = MapDriver.newMapDriver(mapper);
reduceDriver = ReduceDriver.newReduceDriver(reducer);
mapReduceDriver = MapReduceDriver.newMapReduceDriver(mapper, reducer);
}
@Test
public void testMapper() throws IOException
{
mapDriver.addAll(this.getNullTextPairsFromFile("data/people.ttl"));
mapDriver.addAllOutput(this.getPairsFromFile("output/people.output.ttl"));
}
@Test
public void testReduce() throws IOException
{
List<Pair<Text,List<Text>>> inputs = getReducerPairsFromFile("output/people.output.ttl");
reduceDriver.withAll(inputs);
reduceDriver.addAllOutput(this.getPairsFromFile("output/people.output.n3toflatjson.json"));
reduceDriver.runTest();
}
@Test
public void testReduceEmptyObject() throws IOException
{
List<Pair<Text,List<Text>>> inputs = getReducerPairsFromFile("output/people.output.emptyobject.ttl");
reduceDriver.withAll(inputs);
reduceDriver.addAllOutput(this.getPairsFromFile("output/people.output.emptyobject.n3toflatjson.json"));
reduceDriver.runTest();
}
}