From 7ee2f509049c51f252adeeb023cb5ca3ba0f35f2 Mon Sep 17 00:00:00 2001 From: Paul-Christian Volkmer <paul-christian.volkmer@mni.thm.de> Date: Mon, 26 May 2014 15:55:27 +0200 Subject: [PATCH] Added test profile to make ARSnova testable on host with running ARSnova --- .../de/thm/arsnova/config/ExtraConfig.java | 39 ++++++++++++++++++- .../webapp/WEB-INF/spring/spring-main.xml | 5 --- .../arsnova/services/FeedbackServiceTest.java | 3 +- .../arsnova/services/QuestionServiceTest.java | 2 + .../arsnova/services/SessionServiceTest.java | 2 + .../services/StatisticsServiceTest.java | 2 + .../thm/arsnova/services/UserServiceTest.java | 2 + 7 files changed, 48 insertions(+), 7 deletions(-) diff --git a/src/main/java/de/thm/arsnova/config/ExtraConfig.java b/src/main/java/de/thm/arsnova/config/ExtraConfig.java index 4f02a379f..3295ed67e 100644 --- a/src/main/java/de/thm/arsnova/config/ExtraConfig.java +++ b/src/main/java/de/thm/arsnova/config/ExtraConfig.java @@ -1,8 +1,12 @@ package de.thm.arsnova.config; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; import org.springframework.core.env.Environment; import org.springframework.core.io.ClassPathResource; @@ -11,13 +15,22 @@ import org.springframework.core.io.Resource; import de.thm.arsnova.connector.client.ConnectorClient; import de.thm.arsnova.connector.client.ConnectorClientImpl; +import de.thm.arsnova.socket.ARSnovaSocketIOServer; @Configuration public class ExtraConfig { + private final Logger LOGGER = LoggerFactory.getLogger(ExtraConfig.class); + @Autowired private Environment env; + @Value(value = "${socketio.ip}") private String socketIp; + @Value(value = "${socketio.port}") private int socketPort; + @Value(value = "${security.ssl}") private boolean socketUseSll; + @Value(value = "${security.keystore}") private String socketKeystore; + @Value(value = "${security.storepass}") private String socketStorepass; + @Bean public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { PropertySourcesPlaceholderConfigurer configurer = new PropertySourcesPlaceholderConfigurer(); @@ -32,7 +45,7 @@ public class ExtraConfig { @Bean(name = "connectorClient") public ConnectorClient connectorClient() { - if (! "true".equals(env.getProperty("connector.enable"))) { + if (!"true".equals(env.getProperty("connector.enable"))) { return null; } @@ -42,4 +55,28 @@ public class ExtraConfig { connectorClient.setPassword(env.getProperty("connector.password")); return connectorClient; } + + @Profile("!test") + @Bean(name = "socketServer", initMethod = "startServer", destroyMethod = "stopServer") + public ARSnovaSocketIOServer socketServer() { + ARSnovaSocketIOServer socketServer = new ARSnovaSocketIOServer(); + socketServer.setHostIp(socketIp); + socketServer.setPortNumber(socketPort); + socketServer.setUseSSL(socketUseSll); + socketServer.setKeystore(socketKeystore); + socketServer.setStorepass(socketStorepass); + return socketServer; + } + + @Profile("test") + @Bean(name = "socketServer", initMethod = "startServer", destroyMethod = "stopServer") + public ARSnovaSocketIOServer socketTestServer() { + ARSnovaSocketIOServer socketServer = new ARSnovaSocketIOServer(); + socketServer.setHostIp(socketIp); + socketServer.setPortNumber(socketPort + 1234); + socketServer.setUseSSL(socketUseSll); + socketServer.setKeystore(socketKeystore); + socketServer.setStorepass(socketStorepass); + return socketServer; + } } diff --git a/src/main/webapp/WEB-INF/spring/spring-main.xml b/src/main/webapp/WEB-INF/spring/spring-main.xml index 31686a7ec..d096984dd 100644 --- a/src/main/webapp/WEB-INF/spring/spring-main.xml +++ b/src/main/webapp/WEB-INF/spring/spring-main.xml @@ -33,11 +33,6 @@ <aop:include name="userSessionAspect" /> </aop:aspectj-autoproxy> - <bean id="socketServer" class="de.thm.arsnova.socket.ARSnovaSocketIOServer" - init-method="startServer" destroy-method="stopServer" scope="singleton" - p:portNumber="${socketio.port}" p:hostIp="${socketio.ip}" p:useSSL="${security.ssl}" - p:keystore="${security.keystore}" p:storepass="${security.storepass}" /> - <bean id="userSessionAspect" class="de.thm.arsnova.aop.UserSessionAspect" /> <bean id="userService" scope="singleton" class="de.thm.arsnova.services.UserService" /> diff --git a/src/test/java/de/thm/arsnova/services/FeedbackServiceTest.java b/src/test/java/de/thm/arsnova/services/FeedbackServiceTest.java index 091d39d79..671a7898c 100644 --- a/src/test/java/de/thm/arsnova/services/FeedbackServiceTest.java +++ b/src/test/java/de/thm/arsnova/services/FeedbackServiceTest.java @@ -27,6 +27,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @@ -42,6 +43,7 @@ import de.thm.arsnova.exceptions.NotFoundException; "file:src/main/webapp/WEB-INF/spring/spring-security.xml", "file:src/test/resources/test-config.xml" }) +@ActiveProfiles("test") public class FeedbackServiceTest { @Autowired @@ -75,7 +77,6 @@ public class FeedbackServiceTest { feedbackService.saveFeedback("87654321", 3, new TestUser("testuser36")); feedbackService.saveFeedback("87654321", 3, new TestUser("testuser37")); - feedbackService.saveFeedback("18273645", 0, new TestUser("testuser01")); feedbackService.saveFeedback("18273645", 0, new TestUser("testuser02")); feedbackService.saveFeedback("18273645", 1, new TestUser("testuser11")); diff --git a/src/test/java/de/thm/arsnova/services/QuestionServiceTest.java b/src/test/java/de/thm/arsnova/services/QuestionServiceTest.java index eefc6893b..64f8832bf 100644 --- a/src/test/java/de/thm/arsnova/services/QuestionServiceTest.java +++ b/src/test/java/de/thm/arsnova/services/QuestionServiceTest.java @@ -34,6 +34,7 @@ import org.springframework.security.authentication.AuthenticationCredentialsNotF import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @@ -50,6 +51,7 @@ import de.thm.arsnova.exceptions.NotFoundException; "file:src/main/webapp/WEB-INF/spring/spring-security.xml", "file:src/test/resources/test-config.xml" }) +@ActiveProfiles("test") public class QuestionServiceTest { @Autowired diff --git a/src/test/java/de/thm/arsnova/services/SessionServiceTest.java b/src/test/java/de/thm/arsnova/services/SessionServiceTest.java index 986a54f01..a01f239f7 100644 --- a/src/test/java/de/thm/arsnova/services/SessionServiceTest.java +++ b/src/test/java/de/thm/arsnova/services/SessionServiceTest.java @@ -41,6 +41,7 @@ import org.springframework.security.authentication.AuthenticationCredentialsNotF import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.util.ReflectionTestUtils; @@ -59,6 +60,7 @@ import de.thm.arsnova.exceptions.NotFoundException; "file:src/main/webapp/WEB-INF/spring/spring-security.xml", "file:src/test/resources/test-config.xml" }) +@ActiveProfiles("test") public class SessionServiceTest { @Autowired diff --git a/src/test/java/de/thm/arsnova/services/StatisticsServiceTest.java b/src/test/java/de/thm/arsnova/services/StatisticsServiceTest.java index aca18022e..0e253786d 100644 --- a/src/test/java/de/thm/arsnova/services/StatisticsServiceTest.java +++ b/src/test/java/de/thm/arsnova/services/StatisticsServiceTest.java @@ -11,6 +11,7 @@ import org.junit.runner.RunWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.MockitoAnnotations; +import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; @@ -24,6 +25,7 @@ import de.thm.arsnova.entities.Statistics; "file:src/main/webapp/WEB-INF/spring/spring-security.xml", "file:src/test/resources/test-config.xml" }) +@ActiveProfiles("test") public class StatisticsServiceTest { @InjectMocks diff --git a/src/test/java/de/thm/arsnova/services/UserServiceTest.java b/src/test/java/de/thm/arsnova/services/UserServiceTest.java index 687e51cff..e9b349ac5 100644 --- a/src/test/java/de/thm/arsnova/services/UserServiceTest.java +++ b/src/test/java/de/thm/arsnova/services/UserServiceTest.java @@ -24,10 +24,12 @@ import org.springframework.security.authentication.AnonymousAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.test.context.ActiveProfiles; import de.thm.arsnova.entities.User; @RunWith(BlockJUnit4ClassRunner.class) +@ActiveProfiles("test") public class UserServiceTest { private static final ConcurrentHashMap<UUID, User> socketid2user = new ConcurrentHashMap<UUID, User>(); -- GitLab