From 7c5ba79316b684240322ffb41164ed94b1fbfc3b Mon Sep 17 00:00:00 2001
From: Paul-Christian Volkmer <paul-christian.volkmer@mni.thm.de>
Date: Wed, 31 Oct 2012 13:13:10 +0100
Subject: [PATCH] Cleanup data in stub database at the end of each test

---
 .../arsnova/controller/FeedbackControllerTest.java  | 10 ++++++++++
 .../thm/arsnova/controller/LoginControllerTest.java | 10 ++++++++++
 .../arsnova/controller/QuestionControllerTest.java  | 10 ++++++++++
 .../arsnova/controller/SessionControllerTest.java   | 10 ++++++++++
 .../controller/StatisticsControllerTest.java        |  9 +--------
 .../java/de/thm/arsnova/dao/StubDatabaseDao.java    | 13 +++++++++++--
 .../thm/arsnova/services/FeedbackServiceTest.java   | 10 ++++++++++
 .../thm/arsnova/services/QuestionServiceTest.java   | 10 ++++++++++
 .../de/thm/arsnova/services/SessionServiceTest.java | 10 ++++++++++
 .../thm/arsnova/services/StatisticsServiceTest.java |  6 ++++++
 .../de/thm/arsnova/services/StubUserService.java    |  9 ++++-----
 11 files changed, 92 insertions(+), 15 deletions(-)

diff --git a/src/test/java/de/thm/arsnova/controller/FeedbackControllerTest.java b/src/test/java/de/thm/arsnova/controller/FeedbackControllerTest.java
index 7b19d5f8c..18034a387 100644
--- a/src/test/java/de/thm/arsnova/controller/FeedbackControllerTest.java
+++ b/src/test/java/de/thm/arsnova/controller/FeedbackControllerTest.java
@@ -6,6 +6,7 @@ import static org.junit.Assert.assertEquals;
 
 import javax.inject.Inject;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -19,6 +20,7 @@ import org.springframework.web.servlet.HandlerAdapter;
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter;
 
+import de.thm.arsnova.dao.StubDatabaseDao;
 import de.thm.arsnova.exceptions.NoContentException;
 import de.thm.arsnova.exceptions.NotFoundException;
 import de.thm.arsnova.services.StubUserService;
@@ -42,6 +44,14 @@ public class FeedbackControllerTest {
 
 	@Autowired
 	private StubUserService userService;
+	
+	@Autowired
+	private StubDatabaseDao databaseDao;
+
+	@After
+	public final void cleanup() {
+		databaseDao.cleanupTestData();
+	}
 
 	@Before
 	public void setUp() {
diff --git a/src/test/java/de/thm/arsnova/controller/LoginControllerTest.java b/src/test/java/de/thm/arsnova/controller/LoginControllerTest.java
index c6f2256fe..73824157e 100644
--- a/src/test/java/de/thm/arsnova/controller/LoginControllerTest.java
+++ b/src/test/java/de/thm/arsnova/controller/LoginControllerTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertNotNull;
 
 import javax.inject.Inject;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -40,6 +41,7 @@ import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter;
 import org.springframework.web.servlet.view.RedirectView;
 
+import de.thm.arsnova.dao.StubDatabaseDao;
 import de.thm.arsnova.services.StubUserService;
 
 @RunWith(SpringJUnit4ClassRunner.class)
@@ -60,6 +62,14 @@ public class LoginControllerTest {
 
 	@Autowired
 	private StubUserService userService;
+	
+	@Autowired
+	private StubDatabaseDao databaseDao;
+
+	@After
+	public final void cleanup() {
+		databaseDao.cleanupTestData();
+	}
 
 	@Before
 	public void setUp() throws Exception {
diff --git a/src/test/java/de/thm/arsnova/controller/QuestionControllerTest.java b/src/test/java/de/thm/arsnova/controller/QuestionControllerTest.java
index 624f63c9b..e798061fb 100644
--- a/src/test/java/de/thm/arsnova/controller/QuestionControllerTest.java
+++ b/src/test/java/de/thm/arsnova/controller/QuestionControllerTest.java
@@ -5,6 +5,7 @@ import static org.junit.Assert.assertTrue;
 
 import javax.inject.Inject;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -18,6 +19,7 @@ import org.springframework.web.servlet.HandlerAdapter;
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter;
 
+import de.thm.arsnova.dao.StubDatabaseDao;
 import de.thm.arsnova.exceptions.NotFoundException;
 import de.thm.arsnova.exceptions.UnauthorizedException;
 import de.thm.arsnova.services.StubUserService;
@@ -40,6 +42,14 @@ public class QuestionControllerTest {
 	
 	@Autowired
 	private StubUserService userService;
+	
+	@Autowired
+	private StubDatabaseDao databaseDao;
+
+	@After
+	public final void cleanup() {
+		databaseDao.cleanupTestData();
+	}
 
 	@Before
 	public void setUp() {
diff --git a/src/test/java/de/thm/arsnova/controller/SessionControllerTest.java b/src/test/java/de/thm/arsnova/controller/SessionControllerTest.java
index 8e2c33587..ee422e592 100644
--- a/src/test/java/de/thm/arsnova/controller/SessionControllerTest.java
+++ b/src/test/java/de/thm/arsnova/controller/SessionControllerTest.java
@@ -5,6 +5,7 @@ import static org.junit.Assert.assertTrue;
 
 import javax.inject.Inject;
 
+import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -18,6 +19,7 @@ import org.springframework.web.servlet.HandlerAdapter;
 import org.springframework.web.servlet.ModelAndView;
 import org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter;
 
+import de.thm.arsnova.dao.StubDatabaseDao;
 import de.thm.arsnova.exceptions.ForbiddenException;
 import de.thm.arsnova.exceptions.NotFoundException;
 import de.thm.arsnova.exceptions.UnauthorizedException;
@@ -42,6 +44,14 @@ public class SessionControllerTest {
 
 	@Autowired
 	private StubUserService userService;
+	
+	@Autowired
+	private StubDatabaseDao databaseDao;
+
+	@After
+	public final void cleanup() {
+		databaseDao.cleanupTestData();
+	}
 
 	@Before
 	public void setUp() {
diff --git a/src/test/java/de/thm/arsnova/controller/StatisticsControllerTest.java b/src/test/java/de/thm/arsnova/controller/StatisticsControllerTest.java
index d0b4f25a2..3ce074a36 100644
--- a/src/test/java/de/thm/arsnova/controller/StatisticsControllerTest.java
+++ b/src/test/java/de/thm/arsnova/controller/StatisticsControllerTest.java
@@ -16,8 +16,6 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 import org.springframework.web.servlet.HandlerAdapter;
 import org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter;
 
-import de.thm.arsnova.services.StubUserService;
-
 @RunWith(SpringJUnit4ClassRunner.class)
 @ContextConfiguration(locations = {
 		"file:src/main/webapp/WEB-INF/arsnova-servlet.xml",
@@ -35,9 +33,6 @@ public class StatisticsControllerTest {
 	@Autowired
 	private StatisticsController statisticsController;
 
-	@Autowired
-	private StubUserService userService;
-
 	@Before
 	public final void setUp() {
 		this.request = new MockHttpServletRequest();
@@ -47,12 +42,10 @@ public class StatisticsControllerTest {
 
 	@Test
 	public final void testShouldGetCurrentOnlineUsers() throws Exception {
-		userService.setUserAuthenticated(true);
-
 		request.setMethod("GET");
 		request.setRequestURI("/statistics/activeusercount");
 		handlerAdapter.handle(request, response, statisticsController);
 
-		assertEquals("1", response.getContentAsString());
+		assertEquals("0", response.getContentAsString());
 	}
 }
diff --git a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
index ac2264591..76b4f2b39 100644
--- a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
+++ b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
@@ -33,6 +33,17 @@ public class StubDatabaseDao implements IDatabaseDao {
 		fillWithDummyQuestions();
 	}
 
+	public void cleanupTestData() {
+		stubSessions.clear();
+		stubFeedbacks.clear();
+		stubQuestions.clear();
+		stubUsers.clear();
+		
+		fillWithDummySessions();
+		fillWithDummyFeedbacks();
+		fillWithDummyQuestions();
+	}
+	
 	private void fillWithDummySessions() {
 		Session session = new Session();
 		session.setActive(true);
@@ -121,7 +132,6 @@ public class StubDatabaseDao implements IDatabaseDao {
 
 	@Override
 	public boolean sessionKeyAvailable(String keyword) {
-		System.out.println(stubSessions.get(keyword));
 		return (stubSessions.get(keyword) == null);
 	}
 
@@ -168,7 +178,6 @@ public class StubDatabaseDao implements IDatabaseDao {
 	@Override
 	public LoggedIn registerAsOnlineUser(User u, Session s) {
 		stubUsers.put(s.getKeyword(), u);
-		System.out.println("X");
 		return new LoggedIn();
 	}
 
diff --git a/src/test/java/de/thm/arsnova/services/FeedbackServiceTest.java b/src/test/java/de/thm/arsnova/services/FeedbackServiceTest.java
index 8332d1918..5cb9beec7 100644
--- a/src/test/java/de/thm/arsnova/services/FeedbackServiceTest.java
+++ b/src/test/java/de/thm/arsnova/services/FeedbackServiceTest.java
@@ -21,12 +21,14 @@ package de.thm.arsnova.services;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 
+import org.junit.After;
 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 de.thm.arsnova.dao.StubDatabaseDao;
 import de.thm.arsnova.exceptions.NoContentException;
 import de.thm.arsnova.exceptions.NotFoundException;
 
@@ -43,6 +45,14 @@ public class FeedbackServiceTest {
 
 	@Autowired
 	StubUserService userService;
+	
+	@Autowired
+	private StubDatabaseDao databaseDao;
+
+	@After
+	public final void cleanup() {
+		databaseDao.cleanupTestData();
+	}
 
 	@Test(expected = NotFoundException.class)
 	public void testShouldFindFeedbackForNonExistantSession() {
diff --git a/src/test/java/de/thm/arsnova/services/QuestionServiceTest.java b/src/test/java/de/thm/arsnova/services/QuestionServiceTest.java
index 607f65476..a224b9461 100644
--- a/src/test/java/de/thm/arsnova/services/QuestionServiceTest.java
+++ b/src/test/java/de/thm/arsnova/services/QuestionServiceTest.java
@@ -20,12 +20,14 @@ package de.thm.arsnova.services;
 
 import static org.junit.Assert.assertEquals;
 
+import org.junit.After;
 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 de.thm.arsnova.dao.StubDatabaseDao;
 import de.thm.arsnova.exceptions.NotFoundException;
 import de.thm.arsnova.exceptions.UnauthorizedException;
 
@@ -42,6 +44,14 @@ public class QuestionServiceTest {
 
 	@Autowired
 	StubUserService userService;
+	
+	@Autowired
+	private StubDatabaseDao databaseDao;
+
+	@After
+	public final void cleanup() {
+		databaseDao.cleanupTestData();
+	}
 
 	@Test(expected = UnauthorizedException.class)
 	public void testShouldNotReturnQuestionsIfNotAuthenticated() {
diff --git a/src/test/java/de/thm/arsnova/services/SessionServiceTest.java b/src/test/java/de/thm/arsnova/services/SessionServiceTest.java
index 6159c0601..520265553 100644
--- a/src/test/java/de/thm/arsnova/services/SessionServiceTest.java
+++ b/src/test/java/de/thm/arsnova/services/SessionServiceTest.java
@@ -22,12 +22,14 @@ import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 
+import org.junit.After;
 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 de.thm.arsnova.dao.StubDatabaseDao;
 import de.thm.arsnova.entities.Session;
 import de.thm.arsnova.exceptions.NotFoundException;
 import de.thm.arsnova.exceptions.UnauthorizedException;
@@ -44,6 +46,14 @@ public class SessionServiceTest {
 
 	@Autowired
 	private StubUserService userService;
+	
+	@Autowired
+	private StubDatabaseDao databaseDao;
+
+	@After
+	public final void cleanup() {
+		databaseDao.cleanupTestData();
+	}
 
 	@Test
 	public void testShouldGenerateSessionKeyword() {
diff --git a/src/test/java/de/thm/arsnova/services/StatisticsServiceTest.java b/src/test/java/de/thm/arsnova/services/StatisticsServiceTest.java
index 077ad2db1..f2530c954 100644
--- a/src/test/java/de/thm/arsnova/services/StatisticsServiceTest.java
+++ b/src/test/java/de/thm/arsnova/services/StatisticsServiceTest.java
@@ -2,6 +2,7 @@ package de.thm.arsnova.services;
 
 import static org.junit.Assert.assertEquals;
 
+import org.junit.After;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -28,6 +29,11 @@ public class StatisticsServiceTest {
 	@Autowired
 	private StubDatabaseDao databaseDao;
 
+	@After
+	public final void cleanup() {
+		databaseDao.cleanupTestData();
+	}
+	
 	@Test
 	public final void testShouldReturnNoActiveUsers() {
 		int actual = statisticsService.countActiveUsers();
diff --git a/src/test/java/de/thm/arsnova/services/StubUserService.java b/src/test/java/de/thm/arsnova/services/StubUserService.java
index 169058a11..7454485fa 100644
--- a/src/test/java/de/thm/arsnova/services/StubUserService.java
+++ b/src/test/java/de/thm/arsnova/services/StubUserService.java
@@ -1,19 +1,18 @@
 package de.thm.arsnova.services;
 
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
 
-import de.thm.arsnova.dao.StubDatabaseDao;
 import de.thm.arsnova.entities.User;
 
 public class StubUserService extends UserService {
 
 	private User stubUser = null;
-
+	
 	public void setUserAuthenticated(boolean isAuthenticated) {
 		if (isAuthenticated) {
-			stubUser = new User(new UsernamePasswordAuthenticationToken(
-					"ptsr00", "testpassword"));
+			stubUser = new User(
+					new UsernamePasswordAuthenticationToken("ptsr00", "testpassword")
+			);
 			return;
 		}
 		stubUser = null;
-- 
GitLab