Fix redundant initial-super-client generation.

Change-Id: If2044ea7c8a1f4ee98997fb89daaa7cffc835284
diff --git a/src/test/java/de/ids_mannheim/korap/web/InitialSuperClientTest.java b/src/test/java/de/ids_mannheim/korap/web/InitialSuperClientTest.java
index afa723d..2649a77 100644
--- a/src/test/java/de/ids_mannheim/korap/web/InitialSuperClientTest.java
+++ b/src/test/java/de/ids_mannheim/korap/web/InitialSuperClientTest.java
@@ -25,17 +25,19 @@
 
     @Autowired
     private FullConfiguration config;
-
     @Autowired
     private OAuth2ClientDao clientDao;
+    @Autowired
+	private OAuth2InitClientService clientService;
 
     private String path = KustvaktConfiguration.DATA_FOLDER + "/"
             + OAuth2InitClientService.TEST_OUTPUT_FILENAME;
-
+    
     @Test
     public void testCreatingInitialSuperClient ()
             throws IOException, KustvaktException {
-        assertTrue(config.createInitialSuperClient());
+    	assertTrue(config.createInitialSuperClient());
+    	// The file was created during server start
         File f = new File(path);
         assertTrue(f.exists());
         JsonNode node = JsonUtils.readFile(path, JsonNode.class);
@@ -44,6 +46,27 @@
         OAuth2Client superClient = clientDao.retrieveClientById(superClientId);
         assertTrue(superClient.isSuper());
         testLogin(superClientId, superClientSecret);
+        assertEquals(2,clientDao.retrieveSuperClients());
+        
+        clientDao.deregisterClient(superClient);
+        assertEquals(1,clientDao.retrieveSuperClients());
+        
+        testRegisterFromExistingFile();
+    }
+    
+    private void testRegisterFromExistingFile ()
+            throws IOException, KustvaktException {
+    	
+    	clientService.createInitialTestSuperClient();
+        assertEquals(2,clientDao.retrieveSuperClients());
+        
+        JsonNode node = JsonUtils.readFile(path, JsonNode.class);
+        String superClientId = node.at("/client_id").asText();
+        OAuth2Client superClient = clientDao.retrieveClientById(superClientId);
+        assertTrue(superClient.isSuper());
+
+        clientDao.deregisterClient(superClient);
+        assertEquals(1,clientDao.retrieveSuperClients());
         removeSuperClientFile();
     }
 
diff --git a/src/test/java/de/ids_mannheim/korap/web/controller/oauth2/OAuth2TestBase.java b/src/test/java/de/ids_mannheim/korap/web/controller/oauth2/OAuth2TestBase.java
index e8d5b94..6e10946 100644
--- a/src/test/java/de/ids_mannheim/korap/web/controller/oauth2/OAuth2TestBase.java
+++ b/src/test/java/de/ids_mannheim/korap/web/controller/oauth2/OAuth2TestBase.java
@@ -100,14 +100,14 @@
 					"super confidential client", OAuth2ClientType.CONFIDENTIAL,
 					"http://korap.ids-mannheim.de/confidential",
 					"https://korap.ids-mannheim.de/confidential/redirect",
-					"system", "Super confidential client.", 0, null, false);
+					"system", "Super confidential client.", 0, null);
 		}
 		
 		try {
 			clientDao.retrieveClientById(publicClientId);
 		}
 		catch (KustvaktException e) {
-			clientDao.registerClient(publicClientId, null,
+			clientDao.registerClient(false, publicClientId, null,
 					"public client plugin with redirect uri",
 					OAuth2ClientType.PUBLIC, "https://third.party.client.com",
 					"https://third.party.client.com/redirect", "system",
@@ -119,7 +119,7 @@
 			clientDao.retrieveClientById(publicClientId2);
 		}
 		catch (KustvaktException e) {
-			clientDao.registerClient(publicClientId2, null,
+			clientDao.registerClient(false, publicClientId2, null,
 					"test public client", OAuth2ClientType.PUBLIC,
 					"http://korap.ids-mannheim.de/public", null, "system",
 					"Public client without redirect uri", 0, null);
@@ -129,7 +129,7 @@
 			clientDao.retrieveClientById(confidentialClientId);
 		}
 		catch (KustvaktException e) {
-			clientDao.registerClient(confidentialClientId,
+			clientDao.registerClient(false, confidentialClientId,
 					"$2a$08$vi1FbuN3p6GcI1tSxMAoeuIYL8Yw3j6A8wJthaN8ZboVnrQaTwLPq",
 					"non super confidential client",
 					OAuth2ClientType.CONFIDENTIAL,
@@ -148,7 +148,10 @@
 					"confidential client 2", OAuth2ClientType.CONFIDENTIAL,
 					"http://example.client.de", null, "system",
 					"Nonsuper confidential client plugin without redirect URI",
-					0, source, true);
+					0, source);
+			OAuth2Client client = clientDao.retrieveClientById(confidentialClientId2);
+			client.setPermitted(true);
+			clientDao.updateClient(client);
 		}
 	}
     
diff --git a/src/test/resources/test-jdbc.properties b/src/test/resources/test-jdbc.properties
index 5e84ae0..4489537 100644
--- a/src/test/resources/test-jdbc.properties
+++ b/src/test/resources/test-jdbc.properties
@@ -5,7 +5,7 @@
 jdbc.driverClassName=org.sqlite.JDBC
 #jdbc.url=jdbc:sqlite::memory:
 jdbc.url=jdbc:sqlite:file::memory:?cache=shared
-#jdbc.url=jdbc:sqlite:testDB.sqlite
+#jdbc.url=jdbc:sqlite:data/testDB.sqlite
 jdbc.username=pc
 jdbc.password=pc
 jdbc.schemaPath=classpath:db/sqlite,db/predefined
\ No newline at end of file