package com.mysema.rdfbean.sesame;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.io.File;
import java.io.IOException;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import com.mysema.rdfbean.TEST;
import com.mysema.rdfbean.domains.ItemDomain;
import com.mysema.rdfbean.model.FOAF;
import com.mysema.rdfbean.model.Format;
import com.mysema.rdfbean.model.RDFBeanTransaction;
import com.mysema.rdfbean.model.io.RDFSource;
import com.mysema.rdfbean.object.Configuration;
import com.mysema.rdfbean.object.DefaultConfiguration;
import com.mysema.rdfbean.object.Session;
import com.mysema.rdfbean.object.SessionFactoryImpl;
import com.mysema.util.FileUtils;
public class MemoryStoreTest implements ItemDomain {
private static final String DATA_DIR = "target/MemoryStoreTest";
private SessionFactoryImpl sessionFactory;
@Before
public void setUp() throws IOException {
Configuration configuration = new DefaultConfiguration(Item.class);
MemoryRepository repository = new MemoryRepository();
if (new File(DATA_DIR).exists()) {
FileUtils.delete(new File(DATA_DIR));
new File(DATA_DIR).mkdir();
}
repository.setSesameInference(false);
repository.setDataDirName(DATA_DIR);
repository.setSources(
new RDFSource("classpath:/test.ttl", Format.TURTLE, TEST.NS),
new RDFSource("classpath:/foaf.rdf", Format.RDFXML, FOAF.NS)
);
sessionFactory = new SessionFactoryImpl();
sessionFactory.setConfiguration(configuration);
sessionFactory.setRepository(repository);
sessionFactory.initialize();
}
@After
public void tearDown() {
sessionFactory.close();
}
@Test
public void test() throws IOException {
Session session = sessionFactory.openSession();
RDFBeanTransaction tx = session.beginTransaction();
Item item = new Item();
item.setPath("xxx");
session.save(item);
tx.commit();
session.close();
session = sessionFactory.openSession();
QItem itemVar = QItem.item;
try {
assertEquals(1, session.from(itemVar).list(itemVar).size());
Item i = session.from(itemVar).list(itemVar).get(0);
assertNotNull(i);
assertEquals("xxx", i.getPath());
assertNotNull(session.from(itemVar).where(itemVar.path.eq("xxx")).uniqueResult(itemVar));
} finally {
session.close();
}
}
}