package com.ontology2.bakemono.rewriteSubjectMapper;
import com.ontology2.bakemono.RecyclingIterable;
import com.ontology2.bakemono.joins.TaggedTextItem;
import com.ontology2.bakemono.rewriteSubject.RewriteSubjectReducer;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
public class TestReducer {
RewriteSubjectReducer reducer;
Reducer<TaggedTextItem,TaggedTextItem,Text,Text>.Context context;
@Before
public void setup() {
reducer=new RewriteSubjectReducer();
context=mock(Reducer.Context.class);
}
@Test
public void rewriteThis() throws IOException, InterruptedException {
RecyclingIterable<TaggedTextItem> inputz=new RecyclingIterable<>(TaggedTextItem.class,
new TaggedTextItem("<http://dbpedia.org/resources/Usagi_Tsukino>\t<http://www.w3.org/2002/07/owl#sameAs>\t<http://dbpedia.org/resources/Sailor_Moon>\t.",1),
new TaggedTextItem("<http://dbpedia.org/resources/Usagi_Tsukino>\t<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>\t<http://example.com/type/Superhero>\t.",16)
);
reducer.reduce(
new TaggedTextItem("<http://dbpedia.org/resources/Usagi_Tsukino>",1),
inputz,
context
);
verify(context).write(
new Text("<http://dbpedia.org/resources/Sailor_Moon>"),
new Text("<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>\t<http://example.com/type/Superhero>\t.")
);
}
@Test
public void dontRewriteThat() throws IOException,InterruptedException {
RecyclingIterable<TaggedTextItem> inputz=new RecyclingIterable<>(TaggedTextItem.class,
new TaggedTextItem("<http://dbpedia.org/resources/Usagi_Tsukino>\t<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>\t<http://example.com/type/Superhero>\t.",16)
);
reducer.reduce(
new TaggedTextItem("<http://dbpedia.org/resources/Usagi_Tsukino>",1),
inputz,
context
);
verifyNoMoreInteractions(context);
}
}