Skip to content
Snippets Groups Projects
Commit 35179a49 authored by Christoph Thelen's avatar Christoph Thelen
Browse files

Bulk delete question answers when deleting sessions

This also fixes a test error.
parent 7520dfab
Branches
Tags
No related merge requests found
......@@ -38,7 +38,6 @@ import de.thm.arsnova.connector.model.Course;
import de.thm.arsnova.dao.IDatabaseDao;
import de.thm.arsnova.domain.ILearningProgressFactory;
import de.thm.arsnova.domain.LearningProgress;
import de.thm.arsnova.entities.Question;
import de.thm.arsnova.entities.Session;
import de.thm.arsnova.entities.SessionInfo;
import de.thm.arsnova.entities.User;
......@@ -305,9 +304,7 @@ public class SessionService implements ISessionService, ApplicationEventPublishe
@PreAuthorize("isAuthenticated() and hasPermission(#sessionkey, 'session', 'owner')")
public void deleteSession(final String sessionkey) {
final Session session = databaseDao.getSessionFromKeyword(sessionkey);
for (final Question q : databaseDao.getSkillQuestions(userService.getCurrentUser(), session)) {
databaseDao.deleteQuestionWithAnswers(q);
}
databaseDao.deleteAllQuestionsWithAnswers(session);
databaseDao.deleteSession(session);
}
......
......@@ -27,7 +27,6 @@ import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
......@@ -50,7 +49,6 @@ import org.springframework.test.util.ReflectionTestUtils;
import de.thm.arsnova.dao.IDatabaseDao;
import de.thm.arsnova.dao.StubDatabaseDao;
import de.thm.arsnova.entities.Question;
import de.thm.arsnova.entities.Session;
import de.thm.arsnova.exceptions.NotFoundException;
......@@ -168,18 +166,14 @@ public class SessionServiceTest {
final Session session = new Session();
session.setKeyword("12345678");
session.setCreator(userService.getCurrentUser().getUsername());
final Question q1 = new Question();
final Question q2 = new Question();
final IDatabaseDao mockDatabase = mock(IDatabaseDao.class);
when(mockDatabase.getSkillQuestions(userService.getCurrentUser(), session)).thenReturn(Arrays.asList(q1, q2));
when(mockDatabase.getSessionFromKeyword(anyString())).thenReturn(session);
ReflectionTestUtils.setField(getTargetObject(sessionService), "databaseDao", mockDatabase);
sessionService.deleteSession(session.getKeyword());
verify(mockDatabase).deleteQuestionWithAnswers(q1);
verify(mockDatabase).deleteQuestionWithAnswers(q2);
verify(mockDatabase).deleteAllQuestionsWithAnswers(session);
verify(mockDatabase).deleteSession(session);
} finally {
ReflectionTestUtils.setField(getTargetObject(sessionService), "databaseDao", tempDatabase);
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment