aboutsummaryrefslogtreecommitdiff
path: root/id/server/moa-id-commons/src/test/java
diff options
context:
space:
mode:
Diffstat (limited to 'id/server/moa-id-commons/src/test/java')
-rw-r--r--id/server/moa-id-commons/src/test/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBReadTest.java127
1 files changed, 127 insertions, 0 deletions
diff --git a/id/server/moa-id-commons/src/test/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBReadTest.java b/id/server/moa-id-commons/src/test/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBReadTest.java
new file mode 100644
index 000000000..7147cd5bc
--- /dev/null
+++ b/id/server/moa-id-commons/src/test/java/at/gv/egovernment/moa/id/commons/db/ConfigurationDBReadTest.java
@@ -0,0 +1,127 @@
+package at.gv.egovernment.moa.id.commons.db;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Properties;
+
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.context.ContextConfiguration;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+
+import at.gv.egovernment.moa.id.commons.db.dao.config.AuthComponentGeneral;
+import at.gv.egovernment.moa.id.commons.db.dao.config.MOAIDConfiguration;
+import at.gv.egovernment.moa.id.commons.db.ex.MOADatabaseException;
+
+import com.datentechnik.moa.id.conf.persistence.Configuration;
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+@RunWith(SpringJUnit4ClassRunner.class)
+@ContextConfiguration("configuration.beans-test.xml")
+public class ConfigurationDBReadTest {
+
+ @Autowired
+ Configuration configDataBase;
+
+ private Properties getHibernateProperties() throws FileNotFoundException, IOException {
+
+ Properties configProp = null;
+ try (InputStream in = ConfigurationDBReadTest.class.getResourceAsStream("hibernate.properties");) {
+ Properties props = new Properties();
+ props.load(in);
+ // read Config Hibernate properties
+ configProp = new Properties();
+ for (Object key : props.keySet()) {
+ String propPrefix = "configuration.";
+ if (key.toString().startsWith(propPrefix + "hibernate")) {
+ String propertyName = key.toString().substring(propPrefix.length());
+ configProp.put(propertyName, props.get(key.toString()));
+ }
+ }
+ }
+
+ return configProp;
+ }
+
+ private void migrateDatabase(List<String> methodNames) throws IllegalAccessException, IllegalArgumentException,
+ InvocationTargetException, NoSuchMethodException, SecurityException {
+ for (String name : methodNames) {
+ Method method = ConfigurationFromDBExtractor.class.getMethod(name);
+ Object tmp = method.invoke(null, new Object[] {});
+ JsonProperty annotation = method.getAnnotation(JsonProperty.class);
+ if (annotation != null) {
+ configDataBase.set(annotation.value(), tmp);
+ } else {
+ System.out.println("Methods must be annotated, annotation is used as key in key-value db.");
+ assertTrue(false);
+ }
+ }
+ }
+
+ @Before
+ public void initialize() throws FileNotFoundException, MOADatabaseException, IOException, IllegalAccessException,
+ IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
+
+ // initialize the connection to the old database
+ ConfigurationDBUtils.initHibernate(getHibernateProperties());
+
+ // migrate the data in the old database to a new key value database
+ List<String> methodNames = Arrays.asList("getAuthComponentGeneral", "getChainingModes",
+ "getTrustedCACertificates", "getDefaultBKUs", "getSLRequestTemplates", "getTimeStampItem",
+ "getPvp2RefreshItem", "getOnlineApplications", "getGenericConfigurations");
+ migrateDatabase(methodNames);
+
+ // close the session with the old database
+ ConfigurationDBUtils.closeSession();
+ }
+
+ @Test
+ public void testGetMOAIDConfiguration() throws FileNotFoundException, MOADatabaseException, IOException,
+ IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException,
+ SecurityException {
+
+ // get the old moaid configuration
+ MOAIDConfiguration oldConfig = ConfigurationDBRead.getMOAIDConfiguration();
+
+ // get the a new moaid configuration from the data in the key value
+ // database
+ MOAIDConfiguration newConfig = NewConfigurationDBRead.getMOAIDConfiguration();
+
+ // check if both configurations yield a similar MOAIDConfiguration
+ // object
+ assertTrue(oldConfig.equals(newConfig));
+
+ }
+
+ @Test
+ public void testGetMOAIDConfigurationNotEqual() throws FileNotFoundException, MOADatabaseException, IOException,
+ IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException,
+ SecurityException {
+
+ // get the old moaid configuration
+ MOAIDConfiguration oldConfig = ConfigurationDBRead.getMOAIDConfiguration();
+
+ // delete part of the configuration
+ oldConfig.setAuthComponentGeneral(new AuthComponentGeneral());
+
+ // get the a new moaid configuration from the data in the key value
+ // database
+ MOAIDConfiguration newConfig = NewConfigurationDBRead.getMOAIDConfiguration();
+
+ // check if both configurations yield a similar MOAIDConfiguration
+ // object
+ assertFalse(oldConfig.equals(newConfig));
+
+ }
+
+}