]> WPIA git - gigi.git/commitdiff
Implement purging of Database before testcases.
authorFelix Dörre <felix@dogcraft.de>
Thu, 26 Jun 2014 10:51:04 +0000 (12:51 +0200)
committerFelix Dörre <felix@dogcraft.de>
Thu, 26 Jun 2014 10:53:21 +0000 (12:53 +0200)
config/test.properties.template
src/org/cacert/gigi/User.java
src/org/cacert/gigi/database/DatabaseConnection.java
tests/org/cacert/gigi/testUtils/ManagedTest.java
util/org/cacert/gigi/util/DatabaseManager.java

index b15e01f7bcf93fdb5cd8c449e446ac7d3aea6aa2..1bd8a5845f01f229d14613b7e1448d4296a0606b 100644 (file)
@@ -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=<password>
index e03c55fec2ec75be192bcc9d564bbfa91c4e0f49..a7e6357667e24caa425c17a5c40e26fb5d0ffdf1 100644 (file)
@@ -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;
index 1c7962299b7151662d09e9b238513631728c0ff5..6bed8bd979c2f62aec1b7922779bed3048716063 100644 (file)
@@ -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.");
index c9a44b8a158046c778ac6291f53faee948e078d9..c85ce451aac27e5385e9d071f73485a99aba305a 100644 (file)
@@ -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();
                }
 
        }
index 34f80f9b85b8fb08ddc7753141af486112f718e3..e43eeb36203ed71c550d4ce7ce08cdd24267a9a4 100644 (file)
@@ -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]);