Package org.openrdf.sail.memory

Source Code of org.openrdf.sail.memory.StoreSerializationTest

/*
* 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 org.openrdf.cursor.Cursor;
import org.openrdf.model.Literal;
import org.openrdf.model.Statement;
import org.openrdf.model.URI;
import org.openrdf.model.URIFactory;
import org.openrdf.model.vocabulary.RDF;
import org.openrdf.query.BindingSet;
import org.openrdf.query.QueryLanguage;
import org.openrdf.query.impl.EmptyBindingSet;
import org.openrdf.query.parser.QueryParserUtil;
import org.openrdf.query.parser.TupleQueryModel;
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();

    URIFactory factory = store.getURIFactory();
    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);

    TupleQueryModel query = QueryParserUtil.parseTupleQuery(QueryLanguage.SERQL,
        "SELECT X, P, Y FROM {X} P {Y}", null);

    Cursor<? extends BindingSet> iter = con.evaluate(query,
        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.getURIFactory();
    foo = factory.createURI("http://www.foo.example/foo");
    bar = factory.createURI("http://www.foo.example/bar");

    con = store.getConnection();

    iter = con.evaluate(query, 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.addStatement(bar, RDF.TYPE, foo);
    con.close();
   
    store.shutDown();
  }

  public void testLongLiterals()
    throws Exception
  {
    MemoryStore store = new MemoryStore(dataDir);
    store.initialize();

    URIFactory factory = store.getURIFactory();
    URI foo = factory.createURI("http://www.foo.example/foo");

    StringBuilder sb = new StringBuilder(66000);
    for (int i = 0; i < 66000; i++) {
      sb.append('a');
    }

    Literal longLiteral = store.getLiteralFactory().createLiteral(sb.toString());

    SailConnection con = store.getConnection();
    con.addStatement(foo, RDF.TYPE, longLiteral);
    con.close();
    store.shutDown();

    store = new MemoryStore(dataDir);
    store.initialize();

    con = store.getConnection();

    Cursor<? extends Statement> iter = con.getStatements(foo, RDF.TYPE, null,
        false);
    assertTrue(iter.next() != null);
    iter.close();

    con.close();
    store.shutDown();   
  }
}
TOP

Related Classes of org.openrdf.sail.memory.StoreSerializationTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.