package com.github.anno4j.recommendation.model; import com.github.anno4j.Anno4j; import com.github.anno4j.model.Annotation; import com.github.anno4j.model.impl.ResourceObject; import com.github.anno4j.querying.QueryService; import com.github.anno4j.recommendation.ontologies.ANNO4JREC; import org.junit.Before; import org.junit.Test; import org.openrdf.repository.sail.SailRepository; import org.openrdf.sail.memory.MemoryStore; import java.util.List; import static org.junit.Assert.assertEquals; /** * Suite to test the {@link com.github.anno4j.recommendation.model.SimilarityStatement} */ public class SimilarityStatementTest { public final static String SOME_PAGE = "http://example.org/"; private Anno4j anno4j; private QueryService queryService; @Before public void setUp() throws Exception { SailRepository repository = new SailRepository(new MemoryStore()); repository.initialize(); anno4j = new Anno4j(); anno4j.setRepository(repository); queryService = anno4j.createQueryService(); queryService.addPrefix(ANNO4JREC.PREFIX, ANNO4JREC.NS); } @Test public void testSimilarityStatement() throws Exception { ResourceObject subject = anno4j.createObject(ResourceObject.class); subject.setResourceAsString(SOME_PAGE + "subject"); ResourceObject object = anno4j.createObject(ResourceObject.class); object.setResourceAsString(SOME_PAGE + "object"); double similarity = 1.0; // Create an annotation Annotation annotation = anno4j.createObject(Annotation.class); // Create the statement SimilarityStatement statement = anno4j.createObject(SimilarityStatement.class); statement.setSubject(subject); statement.setObject(object); statement.setSimilarity(similarity); // Connect the statement with subject and predicate statement.setSubject(subject); statement.setObject(object); // Conntect annotation and body annotation.addBody(statement); // Negative test, query for all SimilarityStatements List<Annotation> result = queryService.addCriteria("oa:hasBody[is-a arec:SimilarityStatement]").execute(); assertEquals(1, result.size()); // SimilarityStatement resultObject = result.get(0); Annotation resultObject = result.get(0); SimilarityStatement resultStatement = (SimilarityStatement) resultObject.getBodies().iterator().next(); // Tests assertEquals(statement.getResource(), resultStatement.getResource()); assertEquals(statement.getSubject().getResource(), resultStatement.getSubject().getResource()); } }