/* * This file is part of ARSnova Backend. * Copyright (C) 2012-2016 The ARSnova Team * * ARSnova Backend is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * ARSnova Backend is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package de.thm.arsnova.dao; import de.thm.arsnova.connector.model.Course; import de.thm.arsnova.domain.CourseScore; import de.thm.arsnova.entities.Answer; import de.thm.arsnova.entities.DbUser; import de.thm.arsnova.entities.Feedback; import de.thm.arsnova.entities.InterposedQuestion; import de.thm.arsnova.entities.InterposedReadingCount; import de.thm.arsnova.entities.LoggedIn; import de.thm.arsnova.entities.Motd; import de.thm.arsnova.entities.MotdList; import de.thm.arsnova.entities.Question; import de.thm.arsnova.entities.Session; import de.thm.arsnova.entities.SessionInfo; import de.thm.arsnova.entities.SortOrder; import de.thm.arsnova.entities.Statistics; import de.thm.arsnova.entities.User; import de.thm.arsnova.entities.transport.ImportExportSession; import de.thm.arsnova.exceptions.NoContentException; import de.thm.arsnova.exceptions.NotFoundException; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class StubDatabaseDao implements IDatabaseDao { private static Map<String, Session> stubSessions = new ConcurrentHashMap<String, Session>(); private static Map<String, Feedback> stubFeedbacks = new ConcurrentHashMap<String, Feedback>(); private static Map<String, List<Question>> stubQuestions = new ConcurrentHashMap<String, List<Question>>(); private static Map<String, User> stubUsers = new ConcurrentHashMap<String, User>(); public InterposedQuestion interposedQuestion; public StubDatabaseDao() { fillWithDummySessions(); fillWithDummyFeedbacks(); 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); session.setCreator("ptsr00"); session.setKeyword("12345678"); session.setName("TestSession1"); session.setShortName("TS1"); stubSessions.put("12345678", session); session = new Session(); session.setActive(true); session.setCreator("ptsr00"); session.setKeyword("87654321"); session.setName("TestSession2"); session.setShortName("TS2"); stubSessions.put("87654321", session); session = new Session(); session.setActive(true); session.setCreator("ptsr00"); session.setKeyword("18273645"); session.setName("TestSession2"); session.setShortName("TS3"); stubSessions.put("18273645", session); } private void fillWithDummyFeedbacks() { stubFeedbacks.put("12345678", new Feedback(0, 0, 0, 0)); stubFeedbacks.put("87654321", new Feedback(2, 3, 5, 7)); stubFeedbacks.put("18273645", new Feedback(2, 3, 5, 11)); } private void fillWithDummyQuestions() { List<Question> questions = new ArrayList<Question>(); questions.add(new Question()); stubQuestions.put("12345678", questions); } @Override public Session saveSession(User user, Session session) { stubSessions.put(session.getKeyword(), session); return session; } @Override public boolean sessionKeyAvailable(String keyword) { return (stubSessions.get(keyword) == null); } @Override public Session getSessionFromKeyword(String keyword) { return stubSessions.get(keyword); } @Override public Question saveQuestion(Session session, Question question) { List<Question> questions = stubQuestions.get(session.getKeyword()); questions.add(question); stubQuestions.put(session.get_id(), questions); return question; } @Override public Question getQuestion(String id) { // Simply ... no such question ;-) return null; } @Override public List<Question> getSkillQuestions(User user, Session session) { if (session == null) { throw new NotFoundException(); } List<Question> questions = stubQuestions.get(session.getKeyword()); if (questions == null) { throw new NoContentException(); } return questions; } @Override public int getSkillQuestionCount(Session session) { return stubQuestions.get(session.getKeyword()).size(); } @Override public List<Session> getMySessions(User user, final int start, final int limit) { // TODO Auto-generated method stub return null; } @Override public List<Session> getPublicPoolSessions() { // TODO Auto-generated method stub return null; } @Override public List<SessionInfo> getPublicPoolSessionsInfo() { // TODO Auto-generated method stub return null; } @Override public List<Session> getMyPublicPoolSessions(User user) { // TODO Auto-generated method stub return null; } @Override public List<SessionInfo> getMyPublicPoolSessionsInfo(final User user) { // TODO Auto-generated method stub return null; } @Override public LoggedIn registerAsOnlineUser(User u, Session s) { stubUsers.put(s.getKeyword(), u); return new LoggedIn(); } @Override public Session updateSessionOwnerActivity(Session session) { // TODO Auto-generated method stub return null; } @Override public Answer getMyAnswer(User user, String questionId, int piRound) { // TODO Auto-generated method stub return null; } @Override public int getAnswerCount(Question question, int piRound) { // TODO Auto-generated method stub return 0; } @Override public List<Answer> getFreetextAnswers(String questionId, final int start, final int limit) { // TODO Auto-generated method stub return null; } @Override public List<Answer> getMyAnswers(User user, Session session) { return new ArrayList<Answer>(); } @Override public int getTotalAnswerCount(String sessionKey) { // TODO Auto-generated method stub return 0; } @Override public int getInterposedCount(String sessionKey) { // TODO Auto-generated method stub return 0; } @Override public List<InterposedQuestion> getInterposedQuestions(Session session, final int start, final int limit) { // TODO Auto-generated method stub return null; } @Override public InterposedQuestion saveQuestion(Session session, InterposedQuestion question, User user) { // TODO Auto-generated method stub return null; } @Override public InterposedQuestion getInterposedQuestion(String questionId) { return this.interposedQuestion; } @Override public void markInterposedQuestionAsRead(InterposedQuestion question) { this.interposedQuestion.setRead(true); } @Override public List<Session> getMyVisitedSessions(User user, final int start, final int limit) { // TODO Auto-generated method stub return null; } @Override public InterposedReadingCount getInterposedReadingCount(Session session) { // TODO Auto-generated method stub return null; } @Override public List<String> getQuestionIds(Session session, User user) { // TODO Auto-generated method stub return null; } @Override public List<String> getUnAnsweredQuestionIds(Session session, User user) { // TODO Auto-generated method stub return null; } @Override public Question updateQuestion(Question question) { // TODO Auto-generated method stub return null; } @Override public void deleteQuestionWithAnswers(Question question) { // TODO Auto-generated method stub } @Override public void deleteAnswers(Question question) { // TODO Auto-generated method stub } @Override public Answer updateAnswer(Answer answer) { // TODO Auto-generated method stub return null; } @Override public Session getSessionFromId(String sessionId) { // TODO Auto-generated method stub return null; } @Override public void deleteAnswer(String answerId) { // TODO Auto-generated method stub } @Override public void deleteInterposedQuestion(InterposedQuestion question) { // TODO Auto-generated method stub } @Override public List<Session> getCourseSessions(List<Course> courses) { return null; } @Override public Session updateSession(Session session) { // TODO Auto-generated method stub return null; } @Override public void deleteSession(Session session) { // TODO Auto-generated method stub } @Override public void deleteAllQuestionsWithAnswers(Session session) { // TODO Auto-generated method stub } @Override public int getLectureQuestionCount(Session session) { // TODO Auto-generated method stub return 0; } @Override public int getFlashcardCount(Session session) { // TODO Auto-generated method stub return 0; } @Override public int getPreparationQuestionCount(Session session) { // TODO Auto-generated method stub return 0; } @Override public int countLectureQuestionAnswers(Session session) { // TODO Auto-generated method stub return 0; } @Override public int countPreparationQuestionAnswers(Session session) { // TODO Auto-generated method stub return 0; } @Override public void deleteAllLectureQuestionsWithAnswers(Session session) { // TODO Auto-generated method stub } @Override public void deleteAllFlashcardsWithAnswers(Session session) { // TODO Auto-generated method stub } @Override public void deleteAllPreparationQuestionsWithAnswers(Session session) { // TODO Auto-generated method stub } @Override public List<String> getUnAnsweredLectureQuestionIds(Session session, User user) { // TODO Auto-generated method stub return null; } @Override public List<String> getUnAnsweredPreparationQuestionIds(Session session, User user) { // TODO Auto-generated method stub return null; } @Override public void deleteAllInterposedQuestions(Session session) { // TODO Auto-generated method stub } @Override public void publishQuestions(Session session, boolean publish, List<Question> questions) { // TODO Auto-generated method stub } @Override public List<Question> publishAllQuestions(Session session, boolean publish) { // TODO Auto-generated method stub return null; } @Override public void deleteAllQuestionsAnswers(Session session) { // TODO Auto-generated method stub } @Override public DbUser createOrUpdateUser(DbUser user) { // TODO Auto-generated method stub return null; } @Override public DbUser getUser(String username) { // TODO Auto-generated method stub return null; } @Override public CourseScore getLearningProgress(Session session) { // TODO Auto-generated method stub return null; } @Override public boolean deleteUser(DbUser dbUser) { // TODO Auto-generated method stub return false; } @Override public List<InterposedQuestion> getInterposedQuestions(Session session, User user, final int start, final int limit) { // TODO Auto-generated method stub return null; } @Override public void deleteAllInterposedQuestions(Session session, User user) { // TODO Auto-generated method stub } @Override public InterposedReadingCount getInterposedReadingCount(Session session, User user) { // TODO Auto-generated method stub return null; } @Override public List<SessionInfo> getMySessionsInfo(User user, final int start, final int limit) { // TODO Auto-generated method stub return null; } @Override public List<SessionInfo> getMyVisitedSessionsInfo(User currentUser, final int start, final int limit) { // TODO Auto-generated method stub return null; } @Override public void deleteAllPreparationAnswers(Session session) { // TODO Auto-generated method stub } @Override public void deleteAllLectureAnswers(Session session) { // TODO Auto-generated method stub } @Override public int getAbstentionAnswerCount(String questionId) { // TODO Auto-generated method stub return 0; } @Override public SessionInfo importSession(User user, ImportExportSession importSession) { // TODO Auto-generated method stub return null; } @Override public ImportExportSession exportSession(String sessionkey, Boolean withAnswer, Boolean withFeedbackQuestions) { // TODO Auto.generated method stub return null; } @Override public List<Question> getSkillQuestionsForUsers(Session session) { // TODO Auto-generated method stub return null; } @Override public List<Question> getSkillQuestionsForTeachers(Session session) { // TODO Auto-generated method stub return null; } @Override public List<Question> getLectureQuestionsForUsers(Session session) { // TODO Auto-generated method stub return null; } @Override public List<Question> getLectureQuestionsForTeachers(Session session) { // TODO Auto-generated method stub return null; } @Override public List<Question> getFlashcardsForUsers(Session session) { // TODO Auto-generated method stub return null; } @Override public List<Question> getFlashcardsForTeachers(Session session) { // TODO Auto-generated method stub return null; } @Override public List<Question> getPreparationQuestionsForUsers(Session session) { // TODO Auto-generated method stub return null; } @Override public List<Question> getPreparationQuestionsForTeachers(Session session) { // TODO Auto-generated method stub return null; } @Override public List<Question> getAllSkillQuestions(Session session) { // TODO Auto-generated method stub return null; } @Override public List<Answer> getAnswers(Question question, int piRound) { // TODO Auto-generated method stub return null; } @Override public List<Answer> getAnswers(Question question) { // TODO Auto-generated method stub return null; } @Override public Answer saveAnswer(Answer answer, User user, Question question, Session session) { // TODO Auto-generated method stub return null; } @Override public Statistics getStatistics() { final Statistics stats = new Statistics(); stats.setOpenSessions(3); stats.setClosedSessions(0); stats.setLectureQuestions(0); stats.setAnswers(0); stats.setInterposedQuestions(0); return stats; } @Override public List<String> getSubjects(Session session, String questionVariant) { // TODO Auto-generated method stub return null; } @Override public List<String> getQuestionIdsBySubject(Session session, String questionVariant, String subject) { // TODO Auto-generated method stub return null; } @Override public SortOrder createOrUpdateSortOrder(SortOrder sortOrder) { // TODO Auto-generated method stub return null; } @Override public SortOrder getSortOrder(String sessionkey, String questionVariant, String subject) { // TODO Auto-generated method stub return null; } @Override public void deleteSortOrder(SortOrder sortOrder) { // TODO Auto-generated method stub } @Override public List<Question> getQuestionsByIds(List<String> ids, Session session) { // TODO Auto-generated method stub return null; } @Override public List<Answer> getAllAnswers(Question question) { // TODO Auto-generated method stub return null; } @Override public int getTotalAnswerCountByQuestion(Question question) { // TODO Auto-generated method stub return 0; } @Override public void resetQuestionsRoundState(Session session, List<Question> questions) { // TODO Auto-generated method stub } @Override public void setVotingAdmissions(Session session, boolean disableVoting, List<Question> questions) { // TODO Auto-generated method stub } @Override public List<Question> setVotingAdmissionForAllQuestions(Session session, boolean disableVoting) { // TODO Auto-generated method stub return null; } @Override public <T> T getObjectFromId(String documentId, Class<T> klass) { // TODO Auto-generated method stub return null; } @Override public List<Motd> getAdminMotds() { // TODO Auto-generated method stub return null; } @Override public List<Motd> getMotdsForAll() { // TODO Auto-generated method stub return null; } @Override public List<Motd> getMotdsForLoggedIn() { // TODO Auto-generated method stub return null; } @Override public List<Motd> getMotdsForTutors() { // TODO Auto-generated method stub return null; } @Override public List<Motd> getMotdsForStudents() { // TODO Auto-generated method stub return null; } @Override public List<Motd> getMotdsForSession(final String sessionkey) { // TODO Auto-generated method stub return null; } @Override public List<Motd> getMotds(NovaView view) { return null; } @Override public Motd getMotdByKey(String key) { // TODO Auto-generated method stub return null; } @Override public Motd createOrUpdateMotd(Motd motd) { // TODO Auto-generated method stub return null; } @Override public void deleteMotd(Motd motd) { // TODO Auto-generated method stub } @Override public MotdList getMotdListForUser(final String username) { // TODO Auto-generated method stub return null; } @Override public MotdList createOrUpdateMotdList(MotdList motdlist) { // TODO Auto-generated method stub return null; } }