/* * Copyright (c) 2010 Mysema Ltd. * All rights reserved. * */ package com.mysema.rdfbean.rdb; import java.io.IOException; import java.sql.SQLException; import java.util.Collections; import java.util.HashSet; import java.util.Set; import org.h2.jdbcx.JdbcConnectionPool; import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Rule; import com.mysema.query.sql.H2Templates; import com.mysema.query.sql.SQLTemplates; import com.mysema.rdfbean.CORE; import com.mysema.rdfbean.TEST; import com.mysema.rdfbean.domains.InferenceDomain.Entity1; import com.mysema.rdfbean.domains.InferenceDomain.Entity2; import com.mysema.rdfbean.domains.InferenceDomain.Entity3; import com.mysema.rdfbean.domains.NoteTypeDomain.NoteType; import com.mysema.rdfbean.domains.SimpleDomain.SimpleType; import com.mysema.rdfbean.domains.SimpleDomain.SimpleType2; import com.mysema.rdfbean.model.LIT; import com.mysema.rdfbean.model.MemoryIdSequence; import com.mysema.rdfbean.model.RDFConnection; import com.mysema.rdfbean.model.STMT; import com.mysema.rdfbean.model.UID; import com.mysema.rdfbean.model.XSD; import com.mysema.rdfbean.object.Configuration; import com.mysema.rdfbean.object.DefaultConfiguration; import com.mysema.rdfbean.object.Session; import com.mysema.rdfbean.testutil.SessionRule; public abstract class AbstractRDBTest { protected static JdbcConnectionPool dataSource; protected static SQLTemplates templates = new H2Templates(); protected static RDBRepository repository; @Rule public SessionRule sessionRule = new SessionRule(repository); public Session session; @BeforeClass public static void setUpClass() throws IOException { if (dataSource == null) { dataSource = JdbcConnectionPool.create("jdbc:h2:nioMapped:target/h2", "sa", ""); dataSource.setMaxConnections(30); } Configuration configuration = new DefaultConfiguration(TEST.NS, Entity1.class, Entity2.class, Entity3.class, SimpleType.class, SimpleType2.class); repository = new RDBRepository(configuration, dataSource, templates, new MemoryIdSequence()); repository.initialize(); // enums Set<STMT> added = new HashSet<STMT>(); for (NoteType nt : NoteType.values()) { added.add(new STMT( new UID(TEST.NS, nt.name()), CORE.enumOrdinal, new LIT(String.valueOf(nt.ordinal()), XSD.integerType))); } RDFConnection connection = repository.openConnection(); connection.update(Collections.<STMT> emptySet(), added); connection.close(); } @AfterClass public static void tearDownClass() throws IOException, SQLException { if (repository != null) { repository.close(); } } }