1 /*
2 *
3 * The DbUnit Database Testing Framework
4 * Copyright (C)2002-2004, DbUnit.org
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 *
20 */
21 package org.dbunit;
22
23 import org.slf4j.Logger;
24 import org.slf4j.LoggerFactory;
25
26 import javax.sql.DataSource;
27
28 import org.dbunit.database.DatabaseConnection;
29 import org.dbunit.database.IDatabaseConnection;
30
31 /**
32 * DatabaseTester that uses a {@link DataSource} to create connections.
33 *
34 * @author Andres Almiray (aalmiray@users.sourceforge.net)
35 * @author Felipe Leme (dbunit@felipeal.net)
36 * @author Last changed by: $Author: gommma $
37 * @version $Revision: 983 $ $Date: 2009-03-14 13:01:03 +0100 (sab, 14 mar 2009) $
38 * @since 2.2.0
39 */
40 public class DataSourceDatabaseTester extends AbstractDatabaseTester
41 {
42
43 /**
44 * Logger for this class
45 */
46 private static final Logger logger = LoggerFactory.getLogger(DataSourceDatabaseTester.class);
47
48 private DataSource dataSource;
49
50 /**
51 * Creates a new DataSourceDatabaseTester with the specified DataSource.
52 *
53 * @param dataSource the DataSource to pull connections from
54 */
55 public DataSourceDatabaseTester( DataSource dataSource )
56 {
57 super();
58
59 if (dataSource == null) {
60 throw new NullPointerException(
61 "The parameter 'dataSource' must not be null");
62 }
63 this.dataSource = dataSource;
64 }
65
66 /**
67 * Creates a new DataSourceDatabaseTester with the specified DataSource and schema name.
68 * @param dataSource the DataSource to pull connections from
69 * @param schema The schema name to be used for new dbunit connections
70 * @since 2.4.5
71 */
72 public DataSourceDatabaseTester(DataSource dataSource, String schema)
73 {
74 super(schema);
75
76 if (dataSource == null) {
77 throw new NullPointerException(
78 "The parameter 'dataSource' must not be null");
79 }
80 this.dataSource = dataSource;
81 }
82
83 public IDatabaseConnection getConnection() throws Exception
84 {
85 logger.debug("getConnection() - start");
86
87 assertTrue( "DataSource is not set", dataSource!=null );
88 return new DatabaseConnection( dataSource.getConnection(), getSchema() );
89 }
90 }