From ee8fb45ad9598e8f2684574af21440e2770347bb Mon Sep 17 00:00:00 2001
From: Paul-Christian Volkmer <paul-christian.volkmer@mni.thm.de>
Date: Thu, 25 Oct 2012 15:03:22 +0200
Subject: [PATCH] Return average value '0' of no feedback is given

---
 .../thm/arsnova/aop/AuthorizationAdviser.java |  5 ++---
 .../controller/AbstractController.java        | 13 +++---------
 .../thm/arsnova/services/FeedbackService.java | 11 +++++-----
 .../arsnova/services/FeedbackServiceTest.java | 21 +++++++++++--------
 4 files changed, 23 insertions(+), 27 deletions(-)

diff --git a/src/main/java/de/thm/arsnova/aop/AuthorizationAdviser.java b/src/main/java/de/thm/arsnova/aop/AuthorizationAdviser.java
index a662ce79..6dcd3a25 100644
--- a/src/main/java/de/thm/arsnova/aop/AuthorizationAdviser.java
+++ b/src/main/java/de/thm/arsnova/aop/AuthorizationAdviser.java
@@ -11,7 +11,7 @@ import de.thm.arsnova.services.IUserService;
 @Aspect
 public class AuthorizationAdviser {
 
-	static IUserService userService;
+	private static IUserService userService;
 
 	public void setUserService(IUserService uService) {
 		userService = uService;
@@ -42,8 +42,7 @@ public class AuthorizationAdviser {
 	 * @param object
 	 */
 	@Before("execution(public * de.thm.arsnova.services.*.*(..)) && @annotation(authenticated) && this(object)")
-	public void checkSessionMembership(Authenticated authenticated,
-			Object object) {
+	public void checkSessionMembership(Authenticated authenticated, Object object) {
 		// TODO: Implement check based on session membership lists
 	}
 }
diff --git a/src/main/java/de/thm/arsnova/controller/AbstractController.java b/src/main/java/de/thm/arsnova/controller/AbstractController.java
index 48f0d94b..c9fa2db7 100644
--- a/src/main/java/de/thm/arsnova/controller/AbstractController.java
+++ b/src/main/java/de/thm/arsnova/controller/AbstractController.java
@@ -13,20 +13,13 @@ import de.thm.arsnova.exceptions.UnauthorizedException;
 public class AbstractController {
 	@ResponseStatus(HttpStatus.NOT_FOUND)
 	@ExceptionHandler(NotFoundException.class)
-	public void handleNotFoundException(Exception e, HttpServletRequest request) {
-
-	}
+	public void handleNotFoundException(final Exception e, HttpServletRequest request) {}
 
 	@ResponseStatus(HttpStatus.FORBIDDEN)
 	@ExceptionHandler(ForbiddenException.class)
-	public void handleForbiddenException(Exception e, HttpServletRequest request) {
-
-	}
+	public void handleForbiddenException(final Exception e, HttpServletRequest request) {}
 
 	@ResponseStatus(HttpStatus.UNAUTHORIZED)
 	@ExceptionHandler(UnauthorizedException.class)
-	public void handleUnauthorizedException(Exception e,
-			HttpServletRequest request) {
-
-	}
+	public void handleUnauthorizedException(final Exception e, HttpServletRequest request) {}
 }
diff --git a/src/main/java/de/thm/arsnova/services/FeedbackService.java b/src/main/java/de/thm/arsnova/services/FeedbackService.java
index e19e5e15..72e65991 100644
--- a/src/main/java/de/thm/arsnova/services/FeedbackService.java
+++ b/src/main/java/de/thm/arsnova/services/FeedbackService.java
@@ -77,9 +77,12 @@ public class FeedbackService implements IFeedbackService {
 	public long getAverageFeedback(String sessionkey) {
 		Feedback feedback = databaseDao.getFeedback(sessionkey);
 		List<Integer> values = feedback.getValues();
-		int count = values.get(0) + values.get(1) + values.get(2)
-				+ values.get(3);
+		int count = values.get(0) + values.get(1) + values.get(2) + values.get(3);
 		int sum = values.get(1) + (values.get(2) * 2) + (values.get(3) * 3);
+
+		if (count == 0)
+			return 0;
+
 		return sum / count;
 	}
 
@@ -98,9 +101,7 @@ public class FeedbackService implements IFeedbackService {
 	 *            keywords mentioned above.
 	 */
 	@Override
-	public void broadcastFeedbackChanges(
-			Map<String, Set<String>> affectedUsers,
-			Set<String> allAffectedSessions) {
+	public void broadcastFeedbackChanges(Map<String, Set<String>> affectedUsers, Set<String> allAffectedSessions) {
 		for (Map.Entry<String, Set<String>> e : affectedUsers.entrySet()) {
 			// Is this user registered with a socket connection?
 			String connectedSocket = userService.getSessionForUser(e.getKey());
diff --git a/src/test/java/de/thm/arsnova/services/FeedbackServiceTest.java b/src/test/java/de/thm/arsnova/services/FeedbackServiceTest.java
index 9088f49c..664b9939 100644
--- a/src/test/java/de/thm/arsnova/services/FeedbackServiceTest.java
+++ b/src/test/java/de/thm/arsnova/services/FeedbackServiceTest.java
@@ -33,7 +33,8 @@ import de.thm.arsnova.exceptions.NotFoundException;
 @ContextConfiguration(locations = {
 		"file:src/main/webapp/WEB-INF/arsnova-servlet.xml",
 		"file:src/main/webapp/WEB-INF/spring/spring-main.xml",
-		"file:src/test/resources/test-config.xml" })
+		"file:src/test/resources/test-config.xml"
+})
 public class FeedbackServiceTest {
 
 	@Autowired
@@ -52,14 +53,10 @@ public class FeedbackServiceTest {
 	public void testShouldReturnFeedback() {
 		userService.setUserAuthenticated(true);
 		assertNotNull(feedbackService.getFeedback("87654321"));
-		assertEquals(2, (int) feedbackService.getFeedback("87654321")
-				.getValues().get(0));
-		assertEquals(3, (int) feedbackService.getFeedback("87654321")
-				.getValues().get(1));
-		assertEquals(5, (int) feedbackService.getFeedback("87654321")
-				.getValues().get(2));
-		assertEquals(7, (int) feedbackService.getFeedback("87654321")
-				.getValues().get(3));
+		assertEquals(2, (int) feedbackService.getFeedback("87654321").getValues().get(0));
+		assertEquals(3, (int) feedbackService.getFeedback("87654321").getValues().get(1));
+		assertEquals(5, (int) feedbackService.getFeedback("87654321").getValues().get(2));
+		assertEquals(7, (int) feedbackService.getFeedback("87654321").getValues().get(3));
 	}
 
 	@Test(expected = NotFoundException.class)
@@ -85,4 +82,10 @@ public class FeedbackServiceTest {
 		userService.setUserAuthenticated(true);
 		assertEquals(2, feedbackService.getAverageFeedback("87654321"));
 	}
+
+	@Test
+	public void testShouldReturnAverageFeedbackForNoFeedbackAtAll() {
+		userService.setUserAuthenticated(true);
+		assertEquals(0, feedbackService.getAverageFeedback("12345678"));
+	}
 }
\ No newline at end of file
-- 
GitLab