From 0a814fdf958fab3f77d7d9d5333ad4307f7c9b8c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Felix=20D=C3=B6rre?= Date: Thu, 26 Jun 2014 12:51:04 +0200 Subject: [PATCH] Implement purging of Database before testcases. --- config/test.properties.template | 11 +++++++- src/org/cacert/gigi/User.java | 2 +- .../gigi/database/DatabaseConnection.java | 3 +++ .../cacert/gigi/testUtils/ManagedTest.java | 25 ++++++++++++++++++- .../org/cacert/gigi/util/DatabaseManager.java | 4 +++ 5 files changed, 42 insertions(+), 3 deletions(-) diff --git a/config/test.properties.template b/config/test.properties.template index b15e01f7..1bd8a584 100644 --- a/config/test.properties.template +++ b/config/test.properties.template @@ -2,8 +2,17 @@ type=local server=localhost:443 mail=localhost:8474 -==== OR === +# ==== OR === type=autonomous java=java -cp bin;/path/to/mysqlConnector.jar org.cacert.gigi.Launcher serverPort=4443 mailPort=8473 + + + + +# ==== ALL === +sql.driver=com.mysql.jdbc.Driver +sql.url=jdbc:mysql://localhost:3306/cacert +sql.user=cacert +sql.password= diff --git a/src/org/cacert/gigi/User.java b/src/org/cacert/gigi/User.java index e03c55fe..a7e63576 100644 --- a/src/org/cacert/gigi/User.java +++ b/src/org/cacert/gigi/User.java @@ -11,7 +11,7 @@ import org.cacert.gigi.util.PasswordHash; public class User { private int id; - Name name; + Name name = new Name(null, null); Date dob; String email; diff --git a/src/org/cacert/gigi/database/DatabaseConnection.java b/src/org/cacert/gigi/database/DatabaseConnection.java index 1c796229..6bed8bd9 100644 --- a/src/org/cacert/gigi/database/DatabaseConnection.java +++ b/src/org/cacert/gigi/database/DatabaseConnection.java @@ -81,6 +81,9 @@ public class DatabaseConnection { public static DatabaseConnection getInstance() { return instances.get(); } + public static boolean isInited() { + return credentials != null; + } public static void init(Properties conf) { if (credentials != null) { throw new Error("Re-initiaizing is forbidden."); diff --git a/tests/org/cacert/gigi/testUtils/ManagedTest.java b/tests/org/cacert/gigi/testUtils/ManagedTest.java index c9a44b8a..c85ce451 100644 --- a/tests/org/cacert/gigi/testUtils/ManagedTest.java +++ b/tests/org/cacert/gigi/testUtils/ManagedTest.java @@ -15,12 +15,15 @@ import java.net.URL; import java.net.URLEncoder; import java.nio.file.Files; import java.nio.file.Paths; +import java.sql.SQLException; import java.util.Properties; import org.cacert.gigi.DevelLauncher; import org.cacert.gigi.IOUtils; import org.cacert.gigi.InitTruststore; +import org.cacert.gigi.database.DatabaseConnection; import org.cacert.gigi.testUtils.TestEmailReciever.TestMail; +import org.cacert.gigi.util.DatabaseManager; import org.junit.After; import org.junit.AfterClass; import org.junit.BeforeClass; @@ -45,6 +48,16 @@ public class ManagedTest { public static void connectToServer() { try { testProps.load(new FileInputStream("config/test.properties")); + if (!DatabaseConnection.isInited()) { + DatabaseConnection.init(testProps); + } + System.out.println("... purging Database"); + DatabaseManager.run(new String[]{ + testProps.getProperty("sql.driver"), + testProps.getProperty("sql.url"), + testProps.getProperty("sql.user"), + testProps.getProperty("sql.password")}); + String type = testProps.getProperty("type"); if (type.equals("local")) { url = testProps.getProperty("server"); @@ -59,12 +72,18 @@ public class ManagedTest { gigi.getOutputStream()); System.out.println("... starting server"); Properties mainProps = new Properties(); - mainProps.load(new FileInputStream("config/gigi.properties")); mainProps.setProperty("host", "127.0.0.1"); mainProps.setProperty("port", testProps.getProperty("serverPort")); mainProps.setProperty("emailProvider", "org.cacert.gigi.email.TestEmailProvider"); mainProps.setProperty("emailProvider.port", "8473"); + mainProps.setProperty("sql.driver", + testProps.getProperty("sql.driver")); + mainProps.setProperty("sql.url", testProps.getProperty("sql.url")); + mainProps + .setProperty("sql.user", testProps.getProperty("sql.user")); + mainProps.setProperty("sql.password", + testProps.getProperty("sql.password")); byte[] cacerts = Files .readAllBytes(Paths.get("config/cacerts.jks")); @@ -108,6 +127,10 @@ public class ManagedTest { new InetSocketAddress("localhost", 8473)); } catch (IOException e) { throw new Error(e); + } catch (ClassNotFoundException e1) { + e1.printStackTrace(); + } catch (SQLException e1) { + e1.printStackTrace(); } } diff --git a/util/org/cacert/gigi/util/DatabaseManager.java b/util/org/cacert/gigi/util/DatabaseManager.java index 34f80f9b..e43eeb36 100644 --- a/util/org/cacert/gigi/util/DatabaseManager.java +++ b/util/org/cacert/gigi/util/DatabaseManager.java @@ -19,6 +19,10 @@ public class DatabaseManager { .println("Usage: com.mysql.jdbc.Driver jdbc:mysql://localhost/cacert user password"); return; } + run(args); + } + public static void run(String[] args) throws ClassNotFoundException, + SQLException, IOException { Class.forName(args[0]); Connection conn = DriverManager .getConnection(args[1], args[2], args[3]); -- 2.39.2