+++ /dev/null
-/*
- * Copyright 2005-2010 the original author or authors.
- *
- * Licensed 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.wamblee.support.persistence;
-
-import static junit.framework.Assert.assertEquals;
-
-import javax.persistence.EntityManager;
-import javax.sql.DataSource;
-
-import org.dbunit.IDatabaseTester;
-import org.dbunit.dataset.ITable;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.wamblee.support.persistence.Database;
-import org.wamblee.support.persistence.DatabaseBuilder;
-import org.wamblee.support.persistence.DatabaseUtils;
-import org.wamblee.support.persistence.JpaBuilder;
-import org.wamblee.support.persistence.PersistenceUnitDescription;
-import org.wamblee.support.persistence.JpaBuilder.JpaUnitOfWork;
-
-public class DatabaseUtilsTestBase {
- private Database db;
- private DataSource dataSource;
- private PersistenceUnitDescription persistenceUnit;
- private JpaBuilder builder;
- private DatabaseUtils dbutils;
- private IDatabaseTester dbtester;
-
- @Before
- public void setUp() throws Exception {
- db = DatabaseBuilder.getDatabase();
- dataSource = db.start();
-
- persistenceUnit = new MyPersistenceUnit();
-
- dbutils = new DatabaseUtils(dataSource);
- dbutils.dropTables(new MyTables());
- dbutils.dropTables(JpaCustomizerBuilder.getCustomizer().getJpaTables());
-
- builder = new JpaBuilder(db.getJdbcUrl(), db.getUsername(), db.getPassword(), persistenceUnit);
- builder.start();
-
- assertEquals(0, db.getActiveConnections());
- dbtester = dbutils.createDbTester(new MyTables());
- }
-
- @After
- public void tearDown() throws Exception {
- dbtester.getConnection().close();
- builder.stop();
- dbutils.stop();
- assertEquals(0, db.getActiveConnections());
- db.stop();
- }
-
- @Test
- public void testTablesCorrect() throws Exception {
- String[] tables = dbutils.getTableNames(new MyTables());
- assertEquals(1, tables.length);
- assertEquals("XYZ_MYENTITY", tables[0]);
- }
-
- @Test
- public void testDeleteTables() throws Exception {
- String[] tables = dbutils.getTableNames(new MyTables());
- assertEquals(1, tables.length);
- assertEquals("XYZ_MYENTITY", tables[0]);
-
- // Put some data in the database.
- builder.execute(new JpaUnitOfWork<Void>() {
- public Void execute(EntityManager aEm) {
- MyEntity entity = new MyEntity("a", "b");
- aEm.persist(entity);
- return null;
- }
- });
-
- // Verify one row is written (using Db unit)
- ITable table = dbtester.getDataSet().getTable("XYZ_MYENTITY");
- assertEquals(1, table.getRowCount());
-
- // Clean the database
- dbutils.cleanDatabase(new MyTables());
- table = dbtester.getDataSet().getTable("XYZ_MYENTITY");
- assertEquals(0, table.getRowCount());
-
- // Now drop the database
- dbutils.dropTables(new MyTables());
- dbutils.dropTables(JpaCustomizerBuilder.getCustomizer().getJpaTables());
- tables = dbutils.getTableNames(new MyTables());
- assertEquals(0, tables.length);
- }
-
-}