From 745646fc2c0ccf564d338cdcca7b6579c036624a Mon Sep 17 00:00:00 2001
From: Christoph Thelen <christoph.thelen@mni.thm.de>
Date: Wed, 5 Jun 2019 13:32:27 +0200
Subject: [PATCH] Fix #41: Use test specific properties file

---
 .../java/de/thm/arsnova/config/AppConfigTest.java  | 14 ++++++++++++++
 .../java/de/thm/arsnova/config/TestAppConfig.java  |  5 ++---
 .../controller/JsonViewControllerAdviceTest.java   | 10 +++++-----
 ...ies.example => arsnova.test.properties.example} |  2 +-
 4 files changed, 22 insertions(+), 9 deletions(-)
 rename src/test/resources/{arsnova.properties.example => arsnova.test.properties.example} (99%)

diff --git a/src/test/java/de/thm/arsnova/config/AppConfigTest.java b/src/test/java/de/thm/arsnova/config/AppConfigTest.java
index 8c82e1ec3..fc210c35a 100644
--- a/src/test/java/de/thm/arsnova/config/AppConfigTest.java
+++ b/src/test/java/de/thm/arsnova/config/AppConfigTest.java
@@ -21,12 +21,17 @@ import de.thm.arsnova.connector.client.ConnectorClient;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.test.context.ActiveProfiles;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
 import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 import org.springframework.test.context.web.WebAppConfiguration;
 
+import java.util.Arrays;
+import java.util.List;
+
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
 @RunWith(SpringJUnit4ClassRunner.class)
@@ -43,9 +48,18 @@ public class AppConfigTest extends AbstractJUnit4SpringContextTests {
 	@Autowired(required = false)
 	private ConnectorClient connectorClient;
 
+	@Value("${security.admin-accounts}") private String[] adminAccounts;
+
 	@Test
 	public void testShouldNotLoadConnectorClientByDefault() {
 		assertNull(connectorClient);
 	}
 
+	@Test
+	public void testShouldUseAdminAccountFromTestPropertiesFile() {
+		List<String> expected = Arrays.asList("TestAdmin");
+		List<String> actual = Arrays.asList(adminAccounts);
+
+		assertEquals("Configuration did not load correct property file", expected, actual);
+	}
 }
diff --git a/src/test/java/de/thm/arsnova/config/TestAppConfig.java b/src/test/java/de/thm/arsnova/config/TestAppConfig.java
index 6d735cae0..036464233 100644
--- a/src/test/java/de/thm/arsnova/config/TestAppConfig.java
+++ b/src/test/java/de/thm/arsnova/config/TestAppConfig.java
@@ -59,9 +59,8 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc;
 @EnableSpringConfigured
 @EnableWebMvc
 @PropertySource(
-		value = {"classpath:arsnova.properties.example", "file:/etc/arsnova/arsnova.properties"},
-		ignoreResourceNotFound = true,
-		encoding = "UTF-8"
+	value = "classpath:arsnova.test.properties.example",
+	encoding = "UTF-8"
 )
 @Profile("test")
 public class TestAppConfig {
diff --git a/src/test/java/de/thm/arsnova/controller/JsonViewControllerAdviceTest.java b/src/test/java/de/thm/arsnova/controller/JsonViewControllerAdviceTest.java
index aefcfab55..18673cd53 100644
--- a/src/test/java/de/thm/arsnova/controller/JsonViewControllerAdviceTest.java
+++ b/src/test/java/de/thm/arsnova/controller/JsonViewControllerAdviceTest.java
@@ -98,7 +98,7 @@ public class JsonViewControllerAdviceTest {
 	}
 
 	@Test
-	@WithMockUser("Admin")
+	@WithMockUser("TestAdmin")
 	public void testShouldSerializeAdminViewForAdmin() throws Exception {
 		logger.info("Auth: {}", SecurityContextHolder.getContext().getAuthentication());
 		mockMvc.perform(get("/dummy/1?view=admin").accept(MediaType.APPLICATION_JSON))
@@ -107,7 +107,7 @@ public class JsonViewControllerAdviceTest {
 	}
 
 	@Test
-	@WithMockUser("Admin")
+	@WithMockUser("TestAdmin")
 	public void testShouldSerializeOwnerViewForAdmin() throws Exception {
 		logger.info("Auth: {}", SecurityContextHolder.getContext().getAuthentication());
 		mockMvc.perform(get("/dummy/1?view=owner").accept(MediaType.APPLICATION_JSON))
@@ -116,7 +116,7 @@ public class JsonViewControllerAdviceTest {
 	}
 
 	@Test
-	@WithMockUser("Admin")
+	@WithMockUser("TestAdmin")
 	public void testAdminViewShouldContainAdminProperties() throws Exception {
 		logger.info("Auth: {}", SecurityContextHolder.getContext().getAuthentication());
 		mockMvc.perform(get("/dummy/1?view=admin").accept(MediaType.APPLICATION_JSON))
@@ -127,7 +127,7 @@ public class JsonViewControllerAdviceTest {
 	}
 
 	@Test
-	@WithMockUser("Admin")
+	@WithMockUser("TestAdmin")
 	public void testOwnerViewShouldContainOwnerProperties() throws Exception {
 		logger.info("Auth: {}", SecurityContextHolder.getContext().getAuthentication());
 		mockMvc.perform(get("/dummy/1?view=owner").accept(MediaType.APPLICATION_JSON))
@@ -138,7 +138,7 @@ public class JsonViewControllerAdviceTest {
 	}
 
 	@Test
-	@WithMockUser("Admin")
+	@WithMockUser("TestAdmin")
 	public void testDefaultViewShouldContainPublicProperties() throws Exception {
 		logger.info("Auth: {}", SecurityContextHolder.getContext().getAuthentication());
 		mockMvc.perform(get("/dummy/1").accept(MediaType.APPLICATION_JSON))
diff --git a/src/test/resources/arsnova.properties.example b/src/test/resources/arsnova.test.properties.example
similarity index 99%
rename from src/test/resources/arsnova.properties.example
rename to src/test/resources/arsnova.test.properties.example
index b3d12297e..af4450aec 100644
--- a/src/test/resources/arsnova.properties.example
+++ b/src/test/resources/arsnova.test.properties.example
@@ -30,7 +30,7 @@ socketio.port=8090
 # Admin accounts
 # Usernames of the accounts which are allowed to manage global messages of the
 # day. Multiple accounts are separated by commas.
-security.admin-accounts=Admin
+security.admin-accounts=TestAdmin
 
 
 ################################################################################
-- 
GitLab