From a0f995f59ab1d6241acbfc24158894f7b285d644 Mon Sep 17 00:00:00 2001
From: Paul-Christian Volkmer <paul-christian.volkmer@mni.thm.de>
Date: Wed, 19 Sep 2012 13:56:43 +0200
Subject: [PATCH] Added stub database DAO that should be used in tests instead
 of real db

---
 .../de/thm/arsnova/dao/StubDatabaseDao.java   | 63 +++++++++++++++++++
 1 file changed, 63 insertions(+)
 create mode 100644 src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java

diff --git a/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
new file mode 100644
index 00000000..a531f00f
--- /dev/null
+++ b/src/test/java/de/thm/arsnova/dao/StubDatabaseDao.java
@@ -0,0 +1,63 @@
+package de.thm.arsnova.dao;
+
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+
+import de.thm.arsnova.entities.Feedback;
+import de.thm.arsnova.entities.Session;
+import de.thm.arsnova.entities.User;
+
+public class StubDatabaseDao implements IDatabaseDao {
+
+	private Map<String, Session> stubSessions = new ConcurrentHashMap<String, Session>();
+	private Map<String, Feedback> stubFeedbacks = new ConcurrentHashMap<String, Feedback>();
+	
+	@Override
+	public void cleanFeedbackVotes(int cleanupFeedbackDelay) {
+		stubSessions.clear();		
+	}
+
+	@Override
+	public Session getSession(String keyword) {
+		return stubSessions.get(keyword);
+	}
+
+	@Override
+	public Session saveSession(Session session) {
+		stubSessions.put(session.getKeyword(), session);
+		return session;
+	}
+
+	@Override
+	public Feedback getFeedback(String keyword) {
+		return stubFeedbacks.get(keyword);
+	}
+
+	@Override
+	public boolean saveFeedback(String keyword, int value, User user) {
+		if (stubFeedbacks.get(keyword) == null) {
+			stubFeedbacks.put(keyword, new Feedback(0, 0, 0, 0));
+		}
+		
+		Feedback sessionFeedback = stubFeedbacks.get(keyword);
+		
+		List<Integer> values = sessionFeedback.getValues();
+		values.set(value, values.get(value) + 1);
+		
+		sessionFeedback = new Feedback(values.get(0), values.get(1), values.get(2), values.get(3));
+		
+		stubFeedbacks.put(
+			keyword,
+			sessionFeedback
+		);
+		
+		return true;
+	}
+
+	@Override
+	public boolean sessionKeyAvailable(String keyword) {
+		return (stubSessions.get(keyword) != null);
+	}
+
+}
-- 
GitLab