All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.dbunit.AbstractDatabaseTester Maven / Gradle / Ivy

Go to download

dbUnit is a JUnit extension (also usable from Ant and Maven) targeted for database-driven projects that, among other things, puts your database into a known state between test runs. This is an excellent way to avoid the myriad of problems that can occur when one test case corrupts the database and causes subsequent tests to fail or exacerbate the damage.

There is a newer version: 2.8.0
Show newest version
/*
 *
 * The DbUnit Database Testing Framework
 * Copyright (C)2002-2004, DbUnit.org
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */

package org.dbunit;

import junit.framework.Assert;

import org.dbunit.database.IDatabaseConnection;
import org.dbunit.dataset.IDataSet;
import org.dbunit.operation.DatabaseOperation;

/**
 * Basic implementation of IDatabaseTester.
* Implementations of IDatabaseTester may use this class as a starting point. * * @author Andres Almiray */ public abstract class AbstractDatabaseTester implements IDatabaseTester { private IDataSet dataSet; private String schema; private DatabaseOperation setUpOperation = DatabaseOperation.CLEAN_INSERT; private DatabaseOperation tearDownOperation = DatabaseOperation.NONE; public AbstractDatabaseTester() { super(); } public void closeConnection( IDatabaseConnection connection ) throws Exception { connection.close(); } public IDataSet getDataSet() { return dataSet; } public void onSetup() throws Exception { executeOperation( getSetUpOperation() ); } public void onTearDown() throws Exception { executeOperation( getTearDownOperation() ); } public void setDataSet( IDataSet dataSet ) { this.dataSet = dataSet; } public void setSchema( String schema ) { this.schema = schema; } public void setSetUpOperation( DatabaseOperation setUpOperation ) { this.setUpOperation = setUpOperation; } public void setTearDownOperation( DatabaseOperation tearDownOperation ) { this.tearDownOperation = tearDownOperation; } /** * Asserts that propertyName is not a null String and has a length greater * than zero. */ protected void assertNotNullNorEmpty( String propertyName, String property ) { Assert.assertNotNull( propertyName + " is null", property ); Assert.assertTrue( "Invalid " + propertyName, property.trim() .length() > 0 ); } /** * Returs the schema value. */ protected String getSchema() { return schema; } /** * Returns the DatabaseOperation to call when starting the test. */ protected DatabaseOperation getSetUpOperation() { return setUpOperation; } /** * Returns the DatabaseOperation to call when ending the test. */ protected DatabaseOperation getTearDownOperation() { return tearDownOperation; } /** * Executes a DatabaseOperation with a IDatabaseConnection supplied by * {@link getConnection()} and the test dataset. */ private void executeOperation( DatabaseOperation operation ) throws Exception { if( operation != DatabaseOperation.NONE ){ IDatabaseConnection connection = getConnection(); try{ operation.execute( connection, getDataSet() ); } finally{ closeConnection( connection ); } } } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy