diff --git a/src/main/java/de/thm/arsnova/entities/Statistics.java b/src/main/java/de/thm/arsnova/entities/Statistics.java index 7d77b090d3346b826cc601f36ea55b6e6912e1cf..d8d53a2258e38f3b3d45590a9d547f5c181df8ff 100644 --- a/src/main/java/de/thm/arsnova/entities/Statistics.java +++ b/src/main/java/de/thm/arsnova/entities/Statistics.java @@ -42,4 +42,30 @@ public class Statistics { public void setActiveUsers(int activeUsers) { this.activeUsers = activeUsers; } + + @Override + public int hashCode() { + return (this.getClass().getName() + + this.activeUsers + + this.answers + + this.closedSessions + + this.openSessions + + this.questions).hashCode(); + } + + @Override + public boolean equals(Object obj) { + if (obj == null) { + return false; + } + if (obj == this) { + return true; + } + if (obj instanceof Statistics) { + Statistics other = (Statistics) obj; + return this.hashCode() == other.hashCode(); + } + + return false; + } } diff --git a/src/test/java/de/thm/arsnova/services/SessionServiceTest.java b/src/test/java/de/thm/arsnova/services/SessionServiceTest.java index 6fb1f06a2b70b46243b8c94bfd75c3c713e02923..be057a0cea6e2c782dd376137676199a780436ec 100644 --- a/src/test/java/de/thm/arsnova/services/SessionServiceTest.java +++ b/src/test/java/de/thm/arsnova/services/SessionServiceTest.java @@ -50,7 +50,8 @@ import de.thm.arsnova.exceptions.UnauthorizedException; "file:src/main/webapp/WEB-INF/spring/arsnova-servlet.xml", "file:src/main/webapp/WEB-INF/spring/spring-main.xml", "file:src/main/webapp/WEB-INF/spring/spring-security.xml", -"file:src/test/resources/test-config.xml" }) + "file:src/test/resources/test-config.xml" +}) 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 33ab4921ab83b03771500d8b4877ac0be0852d79..aca18022ed34e7689481c67d3f15ca08ae4f0219 100644 --- a/src/test/java/de/thm/arsnova/services/StatisticsServiceTest.java +++ b/src/test/java/de/thm/arsnova/services/StatisticsServiceTest.java @@ -1,17 +1,20 @@ package de.thm.arsnova.services; import static org.junit.Assert.assertEquals; +import static org.mockito.Matchers.anyInt; +import static org.mockito.Mockito.when; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.springframework.beans.factory.annotation.Autowired; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; 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.entities.Statistics; @RunWith(SpringJUnit4ClassRunner.class) @@ -23,52 +26,51 @@ import de.thm.arsnova.entities.Statistics; }) public class StatisticsServiceTest { - @Autowired - private IStatisticsService statisticsService; + @InjectMocks + private final IStatisticsService statisticsService = new StatisticsService(); - @Autowired - private StubUserService userService; - - @Autowired + @Mock private StubDatabaseDao databaseDao; @Before public final void startup() { - // Create new session to be appended to the existing two sessions - Session session = new Session(); - session.setKeyword("1111222"); - session.setActive(false); - databaseDao.saveSession(session); + MockitoAnnotations.initMocks(this); + when(databaseDao.countQuestions()).thenReturn(123); + when(databaseDao.countActiveUsers(anyInt())).thenReturn(42); + when(databaseDao.countOpenSessions()).thenReturn(1978); + when(databaseDao.countClosedSessions()).thenReturn(1984); + when(databaseDao.countAnswers()).thenReturn(2014); } @After public final void cleanup() { - databaseDao.cleanupTestData(); } @Test public final void testShouldReturnNoActiveUsers() { + when(databaseDao.countActiveUsers(anyInt())).thenReturn(0); + int actual = statisticsService.countActiveUsers(); assertEquals(0, actual); } @Test public final void testShouldReturnCurrentActiveUsers() { - Session session = new Session(); - session.setKeyword("1278127812"); - - userService.setUserAuthenticated(true); - databaseDao.registerAsOnlineUser(userService.getCurrentUser(), session); - int actual = statisticsService.countActiveUsers(); - assertEquals(1, actual); - userService.setUserAuthenticated(false); + assertEquals(42, actual); } @Test - public final void testShouldReturnStatistics() { + public final void testShouldReturnEqualStatistics() { Statistics actual = statisticsService.getStatistics(); - assertEquals(3, actual.getOpenSessions()); - assertEquals(1, actual.getClosedSessions()); + + Statistics expected = new Statistics(); + expected.setActiveUsers(42); + expected.setAnswers(2014); + expected.setClosedSessions(1984); + expected.setOpenSessions(1978); + expected.setQuestions(123); + + assertEquals(expected, actual); } }