/* * Copyright (c) 2010 Mysema Ltd. * All rights reserved. * */ package com.mysema.rdfbean.rdb; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.io.ByteArrayOutputStream; import java.io.IOException; import org.h2.jdbcx.JdbcConnectionPool; import org.junit.After; import org.junit.Test; import com.mysema.query.sql.H2Templates; import com.mysema.query.sql.SQLTemplates; import com.mysema.rdfbean.model.Format; import com.mysema.rdfbean.model.IdSequence; import com.mysema.rdfbean.model.MemoryIdSequence; import com.mysema.rdfbean.model.io.RDFSource; import com.mysema.rdfbean.object.Configuration; import com.mysema.rdfbean.object.DefaultConfiguration; public class SourcesTest { private Configuration configuration = new DefaultConfiguration(); private SQLTemplates templates = new H2Templates(); private RDBRepository repo; @After public void tearDown() { if (repo != null) { repo.close(); } } @Test public void WithSources() { JdbcConnectionPool ds = JdbcConnectionPool.create("jdbc:h2:target/foaf", "sa", ""); ds.setMaxConnections(30); RDFSource source = new RDFSource("classpath:/foaf.rdf", Format.RDFXML, "http://xmlns.com/foaf/0.1/"); repo = new RDBRepository(configuration, ds, templates, new MemoryIdSequence(), source); repo.initialize(); // export ByteArrayOutputStream baos = new ByteArrayOutputStream(); repo.export(Format.TURTLE, null, baos); assertTrue(baos.toByteArray().length > 0); } @Test public void RdfXmlSource() throws IOException { IdSequence sequence = new MemoryIdSequence(); JdbcConnectionPool ds = JdbcConnectionPool.create("jdbc:h2:target/mixed1", "sa", ""); ds.setMaxConnections(30); RDFSource source1 = new RDFSource("classpath:/foaf.rdf", Format.RDFXML, "http://xmlns.com/foaf/0.1/"); RDFSource source2 = new RDFSource("classpath:/wine.owl", Format.RDFXML, "http://www.w3.org/TR/2003/PR-owl-guide-20031209/wine#"); // 1st count repo = new RDBRepository(configuration, ds, templates, sequence, source1, source2); repo.initialize(); RDBConnection conn = repo.openConnection(); int count = conn.find(null, null, null, null, false).size(); conn.close(); repo.close(); // 2nd count repo = new RDBRepository(configuration, ds, templates, sequence, source1, source2); repo.initialize(); conn = repo.openConnection(); try { assertEquals(count, conn.find(null, null, null, null, false).size()); } finally { conn.close(); repo.close(); repo = null; } } @Test public void TurtleSource() throws IOException { IdSequence sequence = new MemoryIdSequence(); JdbcConnectionPool ds = JdbcConnectionPool.create("jdbc:h2:target/mixed2", "sa", ""); ds.setMaxConnections(30); RDFSource source = new RDFSource("classpath:/test.ttl", Format.TURTLE, "http://semantics.mysema.com/test#"); // 1st count repo = new RDBRepository(configuration, ds, templates, sequence, source); repo.initialize(); RDBConnection conn = repo.openConnection(); int count = conn.find(null, null, null, null, false).size(); conn.close(); repo.close(); // 2nd count repo = new RDBRepository(configuration, ds, templates, sequence, source); repo.initialize(); conn = repo.openConnection(); try { assertEquals(count, conn.find(null, null, null, null, false).size()); } finally { conn.close(); repo.close(); repo = null; } } }