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 java.util.Properties;
27
28 /**
29 * TestCase that uses a JndiDatabaseTester.
30 *
31 * @author Andres Almiray (aalmiray@users.sourceforge.net)
32 * @author Last changed by: $Author: gommma $
33 * @version $Revision: 766 $ $Date: 2008-08-01 13:05:20 +0200 (ven, 01 ago 2008) $
34 * @since 2.2.0
35 */
36 public abstract class JndiBasedDBTestCase extends DBTestCase
37 {
38
39 /**
40 * Logger for this class
41 */
42 private static final Logger logger = LoggerFactory.getLogger(JndiBasedDBTestCase.class);
43
44 public JndiBasedDBTestCase()
45 {
46 }
47
48 public JndiBasedDBTestCase( String name )
49 {
50 super( name );
51 }
52
53 /**
54 * Creates a new IDatabaseTester.<br>
55 * Default implementation returns a {@link JndiDatabaseTester} configured
56 * with the values returned from {@link #getJNDIProperties()} and
57 * {@link #getLookupName()}.
58 */
59 protected IDatabaseTester newDatabaseTester()
60 {
61 logger.debug("newDatabaseTester() - start");
62
63 return new JndiDatabaseTester( getJNDIProperties(), getLookupName() );
64 }
65
66 /**
67 * Returns the JNDI lookup name for the test DataSource.
68 */
69 protected abstract String getLookupName();
70
71 /**
72 * Returns the JNDI properties to use.<br>
73 * Subclasses must override this method to provide customized JNDI
74 * properties. Default implementation returns an empty Properties object.
75 */
76 protected Properties getJNDIProperties()
77 {
78 return new Properties();
79 }
80 }