]> WPIA git - gigi.git/blobdiff - tests/org/cacert/gigi/testUtils/ManagedTest.java
Implement purging of Database before testcases.
[gigi.git] / tests / org / cacert / gigi / testUtils / ManagedTest.java
index f591e77259e0f6a1a6d9fd3cf576f0f92469fa45..c85ce451aac27e5385e9d071f73485a99aba305a 100644 (file)
@@ -15,11 +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;
@@ -35,10 +39,25 @@ public class ManagedTest {
                return url;
        }
        static Properties testProps = new Properties();
+       static {
+               InitTruststore.run();
+               HttpURLConnection.setFollowRedirects(false);
+       }
+
        @BeforeClass
        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");
@@ -53,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"));
@@ -102,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();
                }
 
        }
@@ -171,7 +200,8 @@ public class ManagedTest {
                        TestMail tm = ter.recieve();
                        String verifyLink = tm.extractLink();
                        String[] parts = verifyLink.split("\\?");
-                       URL u = new URL("https://" + getServerName() + "/verify" + parts[1]);
+                       URL u = new URL("https://" + getServerName() + "/verify?"
+                                       + parts[1]);
                        u.openStream().close();;
                } catch (InterruptedException e) {
                        throw new Error(e);