]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.db.testing/src/org/simantics/db/testing/common/AcornTestHandler.java
Merge "Revert "Support enumerated property types in UC interface""
[simantics/platform.git] / bundles / org.simantics.db.testing / src / org / simantics / db / testing / common / AcornTestHandler.java
1 package org.simantics.db.testing.common;
2
3 import java.io.File;
4 import java.io.IOException;
5 import java.util.Properties;
6
7 import org.eclipse.core.runtime.Platform;
8 import org.simantics.db.Driver;
9 import org.simantics.db.Driver.Management;
10 import org.simantics.db.Manager;
11 import org.simantics.db.ServerI;
12 import org.simantics.db.Session;
13 import org.simantics.db.exception.DatabaseException;
14 import org.simantics.db.indexing.DatabaseIndexing;
15
16 /**
17  * ProCore specific test handler.
18  *
19  */
20 public class AcornTestHandler {
21     // private final TestSettings testSettings;
22     private final Driver driver;
23     private final File dbFolder;
24
25     AcornTestHandler(TestSettings testSettings, String dbFolderName) throws DatabaseException {
26         // this.testSettings = testSettings;
27         driver = Manager.getDriver("acorn");
28         if (driver == null)
29             throw new IllegalArgumentException("No driver found for acorn!");
30         if (null == dbFolderName)
31             dbFolder = Platform.getLocation().append("db").toFile();
32         else
33             dbFolder = new File(dbFolderName);
34     }
35
36     void initNew() throws DatabaseException {
37         Management m = getManagement();
38         if (m.exist()) {
39             m.delete();
40         }
41         deleteIndexes();
42         m.create();
43     }
44
45     void initIfNeccessary() throws DatabaseException {
46         Management m = getManagement();
47         if (!m.exist()) {
48             m.create();
49             deleteIndexes();
50         }
51     }
52
53     private void deleteIndexes() throws DatabaseException {
54         try {
55             DatabaseIndexing.deleteAllIndexes();
56         } catch (IOException e) {
57             throw new DatabaseException("Failed to delete all existing indexes", e);
58         }
59     }
60
61     public Session getSession() throws DatabaseException {
62         // Note that we normally user authentication agent for user
63         // identification.
64         Properties props = new Properties();
65         props.setProperty("user", "Default User");
66         props.setProperty("password", "");
67         return driver.getSession(dbFolder.getAbsolutePath(), props);
68     }
69
70     public ServerI getServer() throws DatabaseException {
71         return driver.getServer(dbFolder.getAbsolutePath(), null);
72     }
73
74     public Management getManagement() throws DatabaseException {
75         return driver.getManagement(dbFolder.getAbsolutePath(), null);
76     }
77
78 }