package com.google.refine.test.rdf.vocab; import java.io.File; import java.io.InputStream; import java.util.List; import org.openrdf.repository.Repository; import org.openrdf.repository.RepositoryConnection; import org.openrdf.repository.sail.SailRepository; import org.openrdf.rio.RDFFormat; import org.openrdf.sail.memory.MemoryStore; import org.testng.annotations.Test; import com.google.refine.rdf.vocab.RDFSClass; import com.google.refine.rdf.vocab.RDFSProperty; import com.google.refine.rdf.vocab.VocabularyImportException; import com.google.refine.rdf.vocab.VocabularyImporter; import com.google.refine.rdf.vocab.imp.VocabularySearcher; import static org.testng.Assert.*; public class ImportPrefixTest { @Test public void testImportAndSeach()throws Exception{ VocabularyImporter fakeImporter = new FakeImporter(); VocabularySearcher searcher = new VocabularySearcher(new File("tmp")); searcher.importAndIndexVocabulary("foaf", "http://xmlns.com/foaf/0.1/", "http://xmlns.com/foaf/0.1/","1", fakeImporter); assertFalse(searcher.searchClasses("foaf:P", "1").isEmpty()); } } class FakeImporter extends VocabularyImporter{ @Override public void importVocabulary(String name, String uri, String fetchUrl, List<RDFSClass> classes, List<RDFSProperty> properties) throws VocabularyImportException { try{ InputStream in = getClass().getResourceAsStream("../../org/deri/reconcile/files/foaf.rdf"); Repository repos = getRepository(in,RDFFormat.RDFXML); getTerms(repos, name, uri, classes, properties); }catch(Exception e){ throw new RuntimeException(e); } } private Repository getRepository(InputStream in, RDFFormat format) throws Exception{ Repository therepository = new SailRepository(new MemoryStore()); therepository.initialize(); RepositoryConnection con = therepository.getConnection(); con.add(in, "", format); con.close(); return therepository; } }