package com.ontology2.bakemono.joins;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.LongWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.io.VIntWritable;
import org.apache.hadoop.mapreduce.Mapper;
import org.apache.hadoop.mapreduce.lib.input.FileSplit;
import org.junit.Test;
import java.io.IOException;
import static org.mockito.Mockito.*;
import static com.ontology2.bakemono.joins.SetJoinMapper.*;
public class TextSimpleJoinMapperTest {
@Test
public void dryrun() throws IOException, InterruptedException {
SetJoinMapper<Text> m=new TextSimpleJoinMapper();
Mapper.Context c1=mock(Mapper.Context.class);
stub(c1.getConfiguration()).toReturn(
new Configuration() {{
set(INPUTS + ".23", "s3n://basekb-now/2013-11-10/sieved/a/");
set(INPUTS + ".75", "s3n://basekb-now/2013-11-10/sieved/links/");
}}
);
m.setup(c1);
Mapper.Context c2=mock(Mapper.Context.class);
stub(c2.getInputSplit()).toReturn(
new FileSplit(
new Path("s3n://basekb-now/2013-11-10/sieved/links/links-m-00328.nt.gz")
,0
,0
,null
)
);
m.map(new LongWritable(666),new Text("Ganbaru!"),c2);
verify(c2).getInputSplit();
verify(c2).write(
new TaggedTextItem(new Text("Ganbaru!"),new VIntWritable(75)), new VIntWritable(75)
);
verifyNoMoreInteractions(c2);
Mapper.Context c3=mock(Mapper.Context.class);
stub(c3.getInputSplit()).toReturn(
new FileSplit(
new Path("s3n://basekb-now/2013-11-10/sieved/description/description-m-00099.nt.gz")
,0
,0
,null
)
);
m.map(new LongWritable(667),new Text("He was some kind of recording genius"),c3);
verify(c3).getInputSplit();
verify(c3).write(
new TaggedTextItem(new Text("He was some kind of recording genius"),new VIntWritable(0)), new VIntWritable(0)
);
verifyNoMoreInteractions(c3);
Mapper.Context c4=mock(Mapper.Context.class);
stub(c4.getInputSplit()).toReturn(
new FileSplit(
new Path("s3n://basekb-now/2013-11-10/sieved/a/a-m-21345.nt.gz")
,0
,0
,null
)
);
m.map(new LongWritable(668),new Text("Nothing comes easy"),c4);
verify(c4).getInputSplit();
verify(c4).write(
new TaggedTextItem(new Text("Nothing comes easy"),new VIntWritable(23)), new VIntWritable(23)
);
verifyNoMoreInteractions(c4);
}
}