AriadnePlus/dnet-ariadneplus-publisher/test/main/java/eu/dnetlib/ariadneplus/catalogue/CatalogueRegistratorIntegra...

106 lines
3.4 KiB
Java

package eu.dnetlib.ariadneplus.catalogue;
import java.io.IOException;
import java.io.InputStream;
import java.net.URISyntaxException;
import eu.dnetlib.ariadneplus.CRM;
import eu.dnetlib.ariadneplus.CRMdig;
import eu.dnetlib.ariadneplus.CRMpe;
import eu.dnetlib.ariadneplus.publisher.AriadnePlusPublisherException;
import org.apache.jena.ontology.OntModel;
import org.apache.jena.ontology.OntModelSpec;
import org.apache.jena.rdf.model.InfModel;
import org.apache.jena.rdf.model.ModelFactory;
import org.apache.jena.rdf.model.ResIterator;
import org.apache.jena.rdf.model.Resource;
import org.apache.jena.vocabulary.RDF;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.core.io.ClassPathResource;
import org.springframework.test.context.TestPropertySource;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
/**
* Created by Alessia Bardi on 15/03/2018.
*
* @author Alessia Bardi
*/
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
@TestPropertySource(
locations = "classpath:application-integrationtest.properties")
@Ignore
public class CatalogueRegistratorIntegrationTest {
private String nakalaService = "eu/dnetlib/ariadneplus/registry/nakala.rdf";
private String resourceCatName = "nakalatest";
private String error500_1 = "eu/dnetlib/ariadneplus/registry/error500_1.rdf";
@Autowired
private CatalogueRegistrator reg;
private OntModel baseModel;
@Before
public void setup() {
baseModel = ModelFactory.createOntologyModel(OntModelSpec.RDFS_MEM_TRANS_INF);
baseModel.read(getInputStream("eu/dnetlib/ariadneplus/rdfs/CRMpe.rdfs"), CRMpe.NS);
baseModel.read(getInputStream("eu/dnetlib/ariadneplus/rdfs/CRMdig.rdfs"), CRMdig.NS);
baseModel.read(getInputStream("eu/dnetlib/ariadneplus/rdfs/cidoc_crm_v6.2-draft-2015August.rdfs"), CRM.NS);
}
@Test
public void testRegistration() throws Exception{
InfModel model = loadBaseModel();
model.read(getStream(nakalaService), CRMpe.NS);
ResIterator subjects = model.listSubjectsWithProperty(RDF.type, CRM.E7_Activity);
Resource nakala = subjects.nextResource();
String uuid = reg.register(nakala, CRMpe.PE1_Service, "Huma-Num - Nakala");
System.out.println(uuid);
purge(uuid);
}
@Test
public void testError500_1() throws Exception {
InfModel model = loadBaseModel();
model.read(getStream(error500_1), CRMpe.NS);
ResIterator subjects = model.listSubjectsWithProperty(RDF.type, CRM.E29_Design_or_Procedure);
Resource r = subjects.nextResource();
String uuid = reg.register(r, CRM.E29_Design_or_Procedure, "ARIADNEPLUS");
System.out.println(uuid);
purge(uuid);
}
@Test
public void testPurge() throws AriadnePlusPublisherException, URISyntaxException {
reg.purge(resourceCatName);
}
private void purge(final String uuid) throws AriadnePlusPublisherException, URISyntaxException {
reg.purge(uuid);
}
private static InputStream getStream(final String classpath) throws IOException {
return new ClassPathResource(classpath).getInputStream();
}
protected InfModel loadBaseModel() {
return ModelFactory.createRDFSModel(baseModel);
}
private InputStream getInputStream(String classpath){
try {
final ClassPathResource resource = new ClassPathResource(classpath);
return resource.getInputStream();
}catch(IOException e){
return null;
}
}
}