/** * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.jena.jdbc.mem.metadata; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import org.apache.jena.jdbc.JdbcCompatibility; import org.apache.jena.jdbc.connections.JenaConnection; import org.apache.jena.jdbc.mem.connections.MemConnection; import org.apache.jena.jdbc.metadata.results.AbstractDatabaseMetadataTests; import org.apache.jena.query.Dataset ; import org.apache.jena.query.DatasetFactory ; /** * Database metadata tests for {@link MemConnection} implementation * */ public class TestDatasetConnectionMetadata extends AbstractDatabaseMetadataTests { // Some datasets in memory don't provide perfect transactions but do report // "supportsTransactions". // createTxnMem is fully transactional. // "false" does not pass the tests because "supportsTransactions" is still true. boolean supportsSerializable = true ; @Override protected JenaConnection getConnection() throws SQLException { Dataset ds = supportsSerializable ? DatasetFactory.createTxnMem() : DatasetFactory.create() ; int transactionLevelSupported = supportsSerializable ? JenaConnection.TRANSACTION_SERIALIZABLE : JenaConnection.TRANSACTION_NONE ; return new MemConnection(ds, JenaConnection.DEFAULT_HOLDABILITY, JenaConnection.DEFAULT_AUTO_COMMIT, transactionLevelSupported, JdbcCompatibility.DEFAULT); } @Override protected List<Integer> getSupportedTransactionLevels() { List<Integer> levels = new ArrayList<Integer>(); levels.add(Connection.TRANSACTION_NONE); if ( supportsSerializable ) levels.add(Connection.TRANSACTION_SERIALIZABLE); return levels; } }