package com.github.anno4j.querying.tests; import com.github.anno4j.model.Annotation; import com.github.anno4j.model.Body; import com.github.anno4j.querying.QuerySetup; import org.apache.marmotta.ldpath.parser.ParseException; import org.junit.Test; import org.openrdf.annotations.Iri; import org.openrdf.query.MalformedQueryException; import org.openrdf.query.QueryEvaluationException; import org.openrdf.repository.RepositoryException; import java.util.List; import static org.junit.Assert.assertEquals; /** * Containing all tests with simple path expressions. */ public class PathTest extends QuerySetup { @Test public void testFirstBody() throws RepositoryException, QueryEvaluationException, MalformedQueryException, ParseException { List<Annotation> annotations = queryService .addCriteria("oa:hasBody/ex:value", "Value1") .execute(); assertEquals(1, annotations.size()); // Testing against the serialization date Annotation annotation = annotations.get(0); assertEquals("2015-01-28T12:00:00Z", annotation.getGenerated()); // Testing if the body was persisted correctly PathTestBody testBody = (PathTestBody) annotation.getBodies().iterator().next(); assertEquals("Value1", testBody.getValue()); } @Test public void testSecondBody() throws RepositoryException, QueryEvaluationException, MalformedQueryException, ParseException { List<Annotation> annotations = queryService .addCriteria("oa:hasBody/ex:value", "Value2") .execute(); assertEquals(1, annotations.size()); // Testing against the serialization date Annotation annotation = annotations.get(0); assertEquals("2015-01-28T12:00:00Z", annotation.getCreated()); // Testing if the body was persisted correctly PathTestBody testBody = (PathTestBody) annotation.getBodies().iterator().next(); assertEquals("Value2", testBody.getValue()); } @Test public void falseTest() throws RepositoryException, QueryEvaluationException, MalformedQueryException, ParseException { List<Annotation> annotations = queryService .addCriteria("oa:hasBody/ex:value", "Value3") .execute(); assertEquals(0, annotations.size()); } @Override public void persistTestData() throws RepositoryException, InstantiationException, IllegalAccessException { // Persisting some data Annotation annotation = anno4j.createObject(Annotation.class); annotation.setGenerated("2015-01-28T12:00:00Z"); PathTestBody pathTestBody = anno4j.createObject(PathTestBody.class); pathTestBody.setValue("Value1"); annotation.addBody(pathTestBody); Annotation annotation1 = anno4j.createObject(Annotation.class); annotation1.setCreated("2015-01-28T12:00:00Z"); PathTestBody pathTestBody2 = anno4j.createObject(PathTestBody.class); pathTestBody2.setValue("Value2"); annotation1.addBody(pathTestBody2); } @Iri("http://www.example.com/schema#pathBody") public static interface PathTestBody extends Body { @Iri("http://www.example.com/schema#value") String getValue(); @Iri("http://www.example.com/schema#value") void setValue(String value); } }