/* * Copyright Aduna (http://www.aduna-software.com/) (c) 1997-2007. * * Licensed under the Aduna BSD-style license. */ package org.openrdf.sail.memory; import java.io.File; import junit.framework.TestCase; import info.aduna.io.FileUtil; import info.aduna.iteration.CloseableIteration; import org.openrdf.model.URI; import org.openrdf.model.ValueFactory; import org.openrdf.model.vocabulary.RDF; import org.openrdf.query.BindingSet; import org.openrdf.query.QueryEvaluationException; import org.openrdf.query.QueryLanguage; import org.openrdf.query.algebra.TupleExpr; import org.openrdf.query.impl.EmptyBindingSet; import org.openrdf.query.parser.ParsedTupleQuery; import org.openrdf.query.parser.QueryParserUtil; import org.openrdf.sail.SailConnection; public class StoreSerializationTest extends TestCase { /*-----------* * Variables * *-----------*/ private File dataDir; /*---------* * Methods * *---------*/ @Override protected void setUp() throws Exception { super.setUp(); dataDir = FileUtil.createTempDir("memorystore"); } @Override protected void tearDown() throws Exception { super.tearDown(); FileUtil.deleteDir(dataDir); } public void testSerialization() throws Exception { MemoryStore store = new MemoryStore(dataDir); store.initialize(); ValueFactory factory = store.getValueFactory(); URI foo = factory.createURI("http://www.foo.example/foo"); URI bar = factory.createURI("http://www.foo.example/bar"); SailConnection con = store.getConnection(); con.addStatement(foo, RDF.TYPE, bar); con.commit(); ParsedTupleQuery query = QueryParserUtil.parseTupleQuery(QueryLanguage.SERQL, "SELECT X, P, Y FROM {X} P {Y}", null); TupleExpr tupleExpr = query.getTupleExpr(); CloseableIteration<? extends BindingSet, QueryEvaluationException> iter = con.evaluate(tupleExpr, null, EmptyBindingSet.getInstance(), false); BindingSet bindingSet = iter.next(); assertEquals(bindingSet.getValue("X"), foo); assertEquals(bindingSet.getValue("P"), RDF.TYPE); assertEquals(bindingSet.getValue("Y"), bar); iter.close(); con.close(); store.shutDown(); store = new MemoryStore(dataDir); store.initialize(); factory = store.getValueFactory(); foo = factory.createURI("http://www.foo.example/foo"); bar = factory.createURI("http://www.foo.example/bar"); con = store.getConnection(); iter = con.evaluate(tupleExpr, null, EmptyBindingSet.getInstance(), false); bindingSet = iter.next(); assertEquals(bindingSet.getValue("X"), foo); assertEquals(bindingSet.getValue("P"), RDF.TYPE); assertEquals(bindingSet.getValue("Y"), bar); iter.close(); con.close(); } }