01: /*
02: *
03: * The DbUnit Database Testing Framework
04: * Copyright (C)2002-2004, DbUnit.org
05: *
06: * This library is free software; you can redistribute it and/or
07: * modify it under the terms of the GNU Lesser General Public
08: * License as published by the Free Software Foundation; either
09: * 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:
22: package org.dbunit;
23:
24: import org.slf4j.Logger;
25: import org.slf4j.LoggerFactory;
26:
27: /**
28: * TestCase that uses a JdbcDatabaseTester.
29: *
30: * @author Andres Almiray <aalmiray@users.sourceforge.net>
31: * @author Felipe Leme <dbunit@felipeal.net>
32: */
33: public abstract class JdbcBasedDBTestCase extends DBTestCase {
34:
35: /**
36: * Logger for this class
37: */
38: private static final Logger logger = LoggerFactory
39: .getLogger(JdbcBasedDBTestCase.class);
40:
41: public JdbcBasedDBTestCase() {
42: super ();
43: }
44:
45: public JdbcBasedDBTestCase(String name) {
46: super (name);
47: }
48:
49: /**
50: * Creates a new IDatabaseTester.<br>
51: * Default implementation returns a {@link JdbcDatabaseTester} configured
52: * with the values returned from {@link getDriverClass},
53: * {@link getConnectionUrl}, {@link getUsername} and {@link getPassword()}.
54: */
55: protected IDatabaseTester newDatabaseTester() {
56: logger.debug("newDatabaseTester() - start");
57:
58: JdbcDatabaseTester databaseTester = new JdbcDatabaseTester(
59: getDriverClass(), getConnectionUrl());
60: databaseTester.setUsername(getUsername());
61: databaseTester.setPassword(getPassword());
62: return databaseTester;
63: }
64:
65: /**
66: * Returns the test connection url.
67: */
68: protected abstract String getConnectionUrl();
69:
70: /**
71: * Returns the JDBC driver classname.
72: */
73: protected abstract String getDriverClass();
74:
75: /**
76: * Returns the password for the connection.<br>
77: * Subclasses may override this method to provide a custom password.<br>
78: * Default implementations returns null.
79: */
80: protected String getPassword() {
81: logger.debug("getPassword() - start");
82:
83: return null;
84: }
85:
86: /**
87: * Returns the username for the connection.<br>
88: * Subclasses may override this method to provide a custom username.<br>
89: * Default implementations returns null.
90: */
91: protected String getUsername() {
92: logger.debug("getUsername() - start");
93:
94: return null;
95: }
96: }
|