From 87c483f3d497fc606b1ea4f625e634c87421b182 Mon Sep 17 00:00:00 2001 From: Martin Goik <goik@hdm-stuttgart.de> Date: Tue, 24 Nov 2015 08:31:24 +0100 Subject: [PATCH] Centralized database init --- .../hdm_stuttgart/mi/persistence/DbProps.java | 2 +- .../mi/persistence/test/ConnectionTest.java | 20 ++++++ .../mi/persistence/test/DataInsertTest.java | 49 +------------- .../mi/persistence/test/InitDatabase.java | 66 +++++++++++++++++++ .../mi/persistence/test}/database.properties | 0 5 files changed, 90 insertions(+), 47 deletions(-) create mode 100644 P/Sda1/PersistenceHandler/Authenticate/src/test/java/de/hdm_stuttgart/mi/persistence/test/InitDatabase.java rename P/Sda1/PersistenceHandler/Authenticate/src/{main/resources/de/hdm_stuttgart/mi => test/java/de/hdm_stuttgart/mi/persistence/test}/database.properties (100%) diff --git a/P/Sda1/PersistenceHandler/Authenticate/src/main/java/de/hdm_stuttgart/mi/persistence/DbProps.java b/P/Sda1/PersistenceHandler/Authenticate/src/main/java/de/hdm_stuttgart/mi/persistence/DbProps.java index fd4307500..32daa6f5e 100644 --- a/P/Sda1/PersistenceHandler/Authenticate/src/main/java/de/hdm_stuttgart/mi/persistence/DbProps.java +++ b/P/Sda1/PersistenceHandler/Authenticate/src/main/java/de/hdm_stuttgart/mi/persistence/DbProps.java @@ -8,7 +8,7 @@ import java.util.ResourceBundle; * */ public class DbProps { - private static final String BUNDLE_NAME = "de.hdm_stuttgart.mi.database"; + private static final String BUNDLE_NAME = "de.hdm_stuttgart.mi.persistence.test.database"; private static final ResourceBundle RESOURCE_BUNDLE = ResourceBundle .getBundle(BUNDLE_NAME); diff --git a/P/Sda1/PersistenceHandler/Authenticate/src/test/java/de/hdm_stuttgart/mi/persistence/test/ConnectionTest.java b/P/Sda1/PersistenceHandler/Authenticate/src/test/java/de/hdm_stuttgart/mi/persistence/test/ConnectionTest.java index 069bf7ff4..e01314d9f 100644 --- a/P/Sda1/PersistenceHandler/Authenticate/src/test/java/de/hdm_stuttgart/mi/persistence/test/ConnectionTest.java +++ b/P/Sda1/PersistenceHandler/Authenticate/src/test/java/de/hdm_stuttgart/mi/persistence/test/ConnectionTest.java @@ -1,6 +1,9 @@ package de.hdm_stuttgart.mi.persistence.test; +import java.sql.SQLException; + import org.junit.Assert; +import org.junit.BeforeClass; import org.junit.Test; import de.hdm_stuttgart.mi.persistence.PersistenceHandler; @@ -14,6 +17,23 @@ public class ConnectionTest { final ViewMockup viewMockup = new ViewMockup(); final PersistenceHandler ph = new PersistenceHandler(viewMockup); + + + + /** + * Initialize database + * + */ + @BeforeClass + static public void init() { + try { + InitDatabase.initDatabase(); + } catch (SQLException e) { + Assert.fail("Unable to initialize database:" + e.getLocalizedMessage()); + return; + } + } + /** * Opening and closing a connection diff --git a/P/Sda1/PersistenceHandler/Authenticate/src/test/java/de/hdm_stuttgart/mi/persistence/test/DataInsertTest.java b/P/Sda1/PersistenceHandler/Authenticate/src/test/java/de/hdm_stuttgart/mi/persistence/test/DataInsertTest.java index 34e0259c6..b6caad4f2 100644 --- a/P/Sda1/PersistenceHandler/Authenticate/src/test/java/de/hdm_stuttgart/mi/persistence/test/DataInsertTest.java +++ b/P/Sda1/PersistenceHandler/Authenticate/src/test/java/de/hdm_stuttgart/mi/persistence/test/DataInsertTest.java @@ -1,14 +1,10 @@ package de.hdm_stuttgart.mi.persistence.test; -import java.sql.Connection; -import java.sql.DriverManager; import java.sql.SQLException; -import java.sql.Statement; import org.junit.Assert; import org.junit.Test; -import de.hdm_stuttgart.mi.persistence.DbProps; import de.hdm_stuttgart.mi.persistence.PersistenceHandler; /** @@ -25,7 +21,7 @@ public class DataInsertTest { @Test () public void addDatasets() { try { - initDatabase(); + InitDatabase.initDatabase(); } catch (SQLException e) { Assert.fail("Unable to initialize database:" + e.getLocalizedMessage()); return; @@ -41,7 +37,7 @@ public class DataInsertTest { viewMockup.error); try { - cleanDatabase(); + InitDatabase.initDatabase(); } catch (SQLException e) { System.err.println("Unable to clean database"); } @@ -50,44 +46,5 @@ public class DataInsertTest { } - private void initDatabase() throws SQLException { - - try ( - final Connection conn = DriverManager.getConnection( - DbProps.getString("PersistenceHandler.jdbcUrl"), - DbProps.getString("PersistenceHandler.username"), - DbProps.getString("PersistenceHandler.password")); - - final Statement stmt = conn.createStatement(); - ) { - stmt.executeUpdate("DROP TABLE IF EXISTS Person"); - stmt.executeUpdate("CREATE TABLE Person (\n" + - "name CHAR(20) NOT NULL," + - "email CHAR(20) NOT NULL UNIQUE," + - "login CHAR(20) PRIMARY KEY," + - "password TEXT" + - ");"); - - stmt.executeUpdate( - "INSERT INTO Person VALUES (\n" + - "'Master admin',\n" + - "'admin@company.com',\n" + - "'admin',\n" + - "'B5DllJLkC06vW7KwoTq/vLSWneEQirD3UQGVXNDEwIg=$ZzlQz/1l0yWV1vQokhDTI9j2vbFt5zFo/kXARI2wNlc='\n)" - ); - } - } - private void cleanDatabase() throws SQLException { - - try ( - final Connection conn = DriverManager.getConnection( - DbProps.getString("PersistenceHandler.jdbcUrl"), - DbProps.getString("PersistenceHandler.username"), - DbProps.getString("PersistenceHandler.password")); - - final Statement stmt = conn.createStatement(); - ) { - stmt.executeUpdate("DELETE FROM Person"); - } - } + } diff --git a/P/Sda1/PersistenceHandler/Authenticate/src/test/java/de/hdm_stuttgart/mi/persistence/test/InitDatabase.java b/P/Sda1/PersistenceHandler/Authenticate/src/test/java/de/hdm_stuttgart/mi/persistence/test/InitDatabase.java new file mode 100644 index 000000000..0fca80cac --- /dev/null +++ b/P/Sda1/PersistenceHandler/Authenticate/src/test/java/de/hdm_stuttgart/mi/persistence/test/InitDatabase.java @@ -0,0 +1,66 @@ +package de.hdm_stuttgart.mi.persistence.test; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; +import java.sql.Statement; + +import de.hdm_stuttgart.mi.persistence.DbProps; + +/** + * Create database schema or erase entry records + */ +public class InitDatabase { + + /** + * Erase if required and re-create application related tables. + * + * @throws SQLException + */ + static public void initDatabase() throws SQLException { + + try ( + final Connection conn = DriverManager.getConnection( + DbProps.getString("PersistenceHandler.jdbcUrl"), + DbProps.getString("PersistenceHandler.username"), + DbProps.getString("PersistenceHandler.password")); + + final Statement stmt = conn.createStatement(); + ) { + stmt.executeUpdate("DROP TABLE IF EXISTS Person"); + stmt.executeUpdate("CREATE TABLE Person (\n" + + "name CHAR(20) NOT NULL," + + "email CHAR(20) NOT NULL UNIQUE," + + "login CHAR(20) PRIMARY KEY," + + "password TEXT" + + ");"); + + stmt.executeUpdate( + "INSERT INTO Person VALUES (\n" + + "'Master admin',\n" + + "'admin@company.com',\n" + + "'admin',\n" + + "'B5DllJLkC06vW7KwoTq/vLSWneEQirD3UQGVXNDEwIg=$ZzlQz/1l0yWV1vQokhDTI9j2vbFt5zFo/kXARI2wNlc='\n)" + ); + } + } + + /** + * Erase existing records. + * + * @throws SQLException + */ + static public void cleanDatabase() throws SQLException { + + try ( + final Connection conn = DriverManager.getConnection( + DbProps.getString("PersistenceHandler.jdbcUrl"), + DbProps.getString("PersistenceHandler.username"), + DbProps.getString("PersistenceHandler.password")); + + final Statement stmt = conn.createStatement(); + ) { + stmt.executeUpdate("DELETE FROM Person"); + } + } +} diff --git a/P/Sda1/PersistenceHandler/Authenticate/src/main/resources/de/hdm_stuttgart/mi/database.properties b/P/Sda1/PersistenceHandler/Authenticate/src/test/java/de/hdm_stuttgart/mi/persistence/test/database.properties similarity index 100% rename from P/Sda1/PersistenceHandler/Authenticate/src/main/resources/de/hdm_stuttgart/mi/database.properties rename to P/Sda1/PersistenceHandler/Authenticate/src/test/java/de/hdm_stuttgart/mi/persistence/test/database.properties -- GitLab