package com.github.anno4j.idGenerator; import com.github.anno4j.Anno4j; import com.github.anno4j.model.impl.agent.Person; import com.github.anno4j.model.impl.agent.Software; import org.junit.Test; import org.openrdf.idGenerator.IDGenerator; import org.openrdf.model.Resource; import org.openrdf.model.URI; import org.openrdf.repository.object.ObjectConnection; import org.openrdf.sail.memory.model.MemValueFactory; import java.util.List; import java.util.Set; import java.util.UUID; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; public class IDGeneratorTest { @Test public void testCustomIDGenerator() throws Exception { Anno4j anno4j = new Anno4j(new CustomIDGenerator()); Person personObject = anno4j.createObject(Person.class); assertTrue(personObject.getResourceAsString().startsWith("urn:CUSTOMURL:")); List<Person> resultList = anno4j.findAll(Person.class); assertEquals(1, resultList.size()); assertTrue(resultList.get(0).getResourceAsString().startsWith("urn:CUSTOMURL:")); } @Test public void testCustomIDGeneratorWithType() throws Exception { Anno4j anno4j = new Anno4j(new CustomIDGenerator()); Software softwareObject = anno4j.createObject(Software.class); assertTrue(softwareObject.getResourceAsString().startsWith("urn:SOFTWARE:")); List<Software> resultList = anno4j.findAll(Software.class); assertEquals(1, resultList.size()); assertTrue(resultList.get(0).getResourceAsString().startsWith("urn:SOFTWARE:")); } public static class CustomIDGenerator implements IDGenerator { @Override public Resource generateID(Set<URI> types) { if(types.contains(new MemValueFactory().createURI("http://www.w3.org/ns/prov/SoftwareAgent"))) { return new MemValueFactory().createURI("urn:SOFTWARE:" + UUID.randomUUID()); } else { return new MemValueFactory().createURI("urn:CUSTOMURL:" + UUID.randomUUID()); } } } }