package com.github.anno4j.recommendation.model;
import com.github.anno4j.Anno4j;
import com.github.anno4j.model.impl.ResourceObject;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.openrdf.repository.object.ObjectConnection;
import org.openrdf.repository.sail.SailRepository;
import org.openrdf.sail.memory.MemoryStore;
import java.util.List;
import static org.junit.Assert.assertEquals;
/**
* Test suite for the {@link com.github.anno4j.recommendation.model.Statement}.
*
* A simple statement is set up, then persisted and queried.
*/
public class StatementTest {
public final static String SOME_PAGE = "http://example.org/";
Anno4j anno4j;
@Before
public void setUp() throws Exception {
this.anno4j = new Anno4j();
}
@Test
public void testStatement() throws Exception {
// Create the statement
Statement statement = anno4j.createObject(Statement.class);
// Create random subject and object
ResourceObject subject = anno4j.createObject(ResourceObject.class);
subject.setResourceAsString(SOME_PAGE + "subject");
ResourceObject object = anno4j.createObject(ResourceObject.class);
object.setResourceAsString(SOME_PAGE + "object");
// Connect the statement with subject and predicate
statement.setSubject(subject);
statement.setObject(object);
// Set the statement's predicate
statement.setPredicateAsString(SOME_PAGE + "predicate");
// Persist annotation
anno4j.getObjectRepository().getConnection().addObject(statement);
// Query object
List<Statement> result = anno4j.getObjectRepository().getConnection().getObjects(Statement.class).asList();
assertEquals(1, result.size());
Statement resultObject = result.get(0);
// Tests
assertEquals(statement.getResource(), resultObject.getResource());
assertEquals(statement.getSubject().getResource(), resultObject.getSubject().getResource());
}
}