From 292906f2a7da7d8dc6efa8f52940865c093be189 Mon Sep 17 00:00:00 2001
From: Axel <wiepke@uni-potsdam.de>
Date: Tue, 4 Sep 2018 13:24:56 +0200
Subject: [PATCH] beaut: controlled navigation for assessment. beaut: phase
 progress is in the right place

---
 .../gf/core/management/user/Menu.java         |  5 +-
 .../gf/interfaces/IPeerAssessment.java        |  3 +-
 .../service/AssessmentDBCommunication.java    | 33 ++++++++++
 .../controller/service/FBAssessement.java     |  5 ++
 .../controller/service/PeerAssessment.java    | 23 +++++++
 .../service/PeerAssessmentDummy.java          |  5 ++
 .../assessment/controller/view/QuizView.java  |  9 +++
 .../main/webapp/assets/js/finalAssessment.js  |  6 +-
 .../src/main/webapp/assets/js/utility.js      | 38 +++++++++++
 .../src/main/webapp/pages/Quiz-docent.jsp     |  4 +-
 .../src/main/webapp/pages/Quiz.jsp            |  4 +-
 .../src/main/webapp/pages/createQuiz.jsp      |  6 +-
 .../main/webapp/pages/finalAssessments.jsp    |  2 +-
 .../src/main/webapp/pages/project-student.jsp | 10 +--
 .../main/webapp/pages/rateContribution.jsp    |  4 +-
 .../src/main/webapp/pages/takeQuiz.jsp        |  2 +-
 .../src/main/webapp/pages/viewQuiz.jsp        |  4 +-
 .../modules/assessment/TestAddAssessment.java | 64 ++++++++++++++++++-
 18 files changed, 198 insertions(+), 29 deletions(-)

diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java
index 3af91e3e..15f21c51 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/core/management/user/Menu.java
@@ -1,6 +1,7 @@
 package unipotsdam.gf.core.management.user;
 
 import unipotsdam.gf.core.management.ManagementImpl;
+import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.jsp.JspException;
@@ -30,8 +31,8 @@ public class Menu extends SimpleTagSupport {
                         "            <li><a href=\"Quiz.jsp?token="+token+"&projectId="+projectId+"\">Quizfrage</a></li>\n" +
                         "            <li><a href=\"eportfolio.jsp?token="+token+"&projectId="+projectId+"\">ePortfolio</a></li>\n" +
                         "            <li><a href=\"researchReportTitle.jsp?token="+token+"&projectId="+projectId+"\">Beitrag</a></li>\n" +
-                        "            <li><a href=\"finalAssessments.jsp?token="+token+"&projectId="+projectId+"\">Bewertung</a></li>\n" +
-                        "            <li><a href=\"../index.jsp\">Logout</a></li>\n" +
+                        "            <li><a id=\"assessment\">Bewertung</a></li>\n" +
+                        "            <li><a id=\"logout\">Logout</a></li>\n" +
                         "        </ul>\n" +
                         "    </div>");
                 out.println("<p id=\"userRole\" hidden>isStudent</p>");
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java
index 842513f4..b07b9908 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/interfaces/IPeerAssessment.java
@@ -18,7 +18,7 @@ public interface IPeerAssessment {
      */
     void addAssessmentDataToDB(Assessment assessment);
 
-    Quiz getQuiz(String projectId, String groupId, String author);
+    Quiz getQuiz(String projectId, String quizId, String author);
     /**
      * will return a saved assessment from the DB
      *
@@ -94,5 +94,6 @@ public interface IPeerAssessment {
     void answerQuiz(Map<String, List<String>> questions, StudentIdentifier student);
     void deleteQuiz(String quizId);
 
+    String whatToRate(StudentIdentifier student);
     Map<StudentIdentifier, Double> calculateAssessment(String projectId, String method);
 }
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java
index a8163cb6..5f05a39f 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/AssessmentDBCommunication.java
@@ -36,6 +36,15 @@ class AssessmentDBCommunication {
         return result;
     }
 
+    Boolean getWorkRating(StudentIdentifier student, String fromStudent){
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "SELECT * FROM `workrating` WHERE `projectId`=? AND `studentId`=? AND `fromPeer`=?";
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, student.getProjectId(), student.getStudentId(), fromStudent);
+        return vereinfachtesResultSet.next();
+    }
+
     List<String> getStudents(String projectID) {
         List<String> result = new ArrayList<>();
         MysqlConnect connect = new MysqlConnect();
@@ -63,6 +72,21 @@ class AssessmentDBCommunication {
         return result;
     }
 
+    ArrayList<String> getStudentsByGroupAndProject(Integer groupId, String projectId){
+        ArrayList<String> result = new ArrayList<>();
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "SELECT * FROM `groupuser` WHERE `groupId`=? AND `projectId`=?";
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, groupId, projectId);
+        Boolean next = vereinfachtesResultSet.next();
+        while (next){
+            result.add(vereinfachtesResultSet.getString("studentId"));
+            next = vereinfachtesResultSet.next();
+        }
+        return result;
+    }
+
     ArrayList<Map<String, Double>> getContributionRating(Integer groupId) {
         ArrayList<Map<String, Double>> result = new ArrayList<>();
         MysqlConnect connect = new MysqlConnect();
@@ -83,6 +107,15 @@ class AssessmentDBCommunication {
         return result;
     }
 
+    Boolean getContributionRating(Integer groupId, String fromStudent) {
+        MysqlConnect connect = new MysqlConnect();
+        connect.connect();
+        String mysqlRequest = "SELECT * FROM `contributionrating` WHERE `groupId`=? AND `fromPeer`=?";
+        VereinfachtesResultSet vereinfachtesResultSet =
+                connect.issueSelectStatement(mysqlRequest, groupId, fromStudent);
+        return vereinfachtesResultSet.next();
+    }
+
     ArrayList<Integer> getAnsweredQuizzes(StudentIdentifier student) {
         ArrayList<Integer> result = new ArrayList<>();
         MysqlConnect connect = new MysqlConnect();
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java
index 9279df51..8283f9a2 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/FBAssessement.java
@@ -79,6 +79,11 @@ public class FBAssessement extends AssessmentDAO {
 
     }
 
+    @Override
+    public String whatToRate(StudentIdentifier student) {
+        return null;
+    }
+
     @Override
     public Map<StudentIdentifier, Double> calculateAssessment(String projectId, String method) {
         return null;
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java
index 3aafc6e4..d65c047c 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessment.java
@@ -36,6 +36,29 @@ public class PeerAssessment implements IPeerAssessment {
         new QuizDBCommunication().deleteQuiz(quizId);
     }
 
+    @Override
+    public String whatToRate(StudentIdentifier student) {
+        Integer groupId = new AssessmentDBCommunication().getGroupByStudent(student);
+        ArrayList<String> groupMembers = new AssessmentDBCommunication().getStudentsByGroupAndProject(groupId, student.getProjectId());
+        for (String peer: groupMembers){
+            if (!peer.equals(student.getStudentId())){
+                StudentIdentifier groupMember = new StudentIdentifier(student.getProjectId(), peer);
+                if (!new AssessmentDBCommunication().getWorkRating(groupMember, student.getStudentId())){
+                    return "workRating";
+                }
+            }
+        }
+        ArrayList<Integer> answers = new AssessmentDBCommunication().getAnsweredQuizzes(student);
+        if (answers==null){
+            return "quiz";
+        }
+        Integer groupToRate = new AssessmentDBCommunication().getWhichGroupToRate(student);
+        if (!new AssessmentDBCommunication().getContributionRating(groupToRate, student.getStudentId())){
+            return "contributionRating";
+        }
+        return "done";
+    }
+
     @Override
     public Map<StudentIdentifier, Double> calculateAssessment(ArrayList<Performance> totalPerformance) {
         Map<StudentIdentifier, Double> quizMean = new HashMap<>(quizGrade(totalPerformance));
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java
index 120e2603..74bac433 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/service/PeerAssessmentDummy.java
@@ -84,6 +84,11 @@ public class PeerAssessmentDummy implements IPeerAssessment {
 
     }
 
+    @Override
+    public String whatToRate(StudentIdentifier student) {
+        return null;
+    }
+
     @Override
     public Map<StudentIdentifier, Double> calculateAssessment(String projectId, String method) {
         return null;
diff --git a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java
index 35b0b88e..ece31e17 100644
--- a/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java
+++ b/gemeinsamforschen/src/main/java/unipotsdam/gf/modules/assessment/controller/view/QuizView.java
@@ -85,6 +85,15 @@ public class QuizView {
         }
     }
 
+    @GET
+    @Produces(MediaType.TEXT_HTML)
+    @Path("/whatToRate/project/{projectId}/student/{studentId}")
+    public String whatToRate(@PathParam("projectId") String projectId, @PathParam("studentId") String studentId)
+    {
+        StudentIdentifier student = new StudentIdentifier(projectId,studentId);
+        return peer.whatToRate(student);
+    }
+
     @POST
     @Produces(MediaType.TEXT_PLAIN)
     @Consumes(MediaType.APPLICATION_JSON)
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js
index d8e9fbcb..bbfabe45 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/finalAssessment.js
@@ -1,4 +1,7 @@
 $(document).ready(function () {
+    checkAssessementPhase();
+
+
     $('#notAllRated').hide();
     $(".carousel").carousel({
         interval: false
@@ -10,6 +13,7 @@ $(document).ready(function () {
     });
 });
 
+
 function buildTablesForPeers() {
     let studentId = $('#user').html().trim();
     let projectId = $('#projectId').html().trim();
@@ -17,7 +21,7 @@ function buildTablesForPeers() {
             url: '../rest/group/project/' + projectId + '/student/' + studentId,
             type: 'GET',
             headers: {
-                "Content-Type": "application/json",
+                "Content-Type": "text/javascript",
                 "Cache-Control": "no-cache"
             },
             success: function (peers) {
diff --git a/gemeinsamforschen/src/main/webapp/assets/js/utility.js b/gemeinsamforschen/src/main/webapp/assets/js/utility.js
index baffe52c..f065dd0e 100644
--- a/gemeinsamforschen/src/main/webapp/assets/js/utility.js
+++ b/gemeinsamforschen/src/main/webapp/assets/js/utility.js
@@ -4,11 +4,49 @@ $(document).ready(function(){
         //todo: delete cookies / reset session
         document.location="../index.jsp";
     });
+    $('#assessment').click(function(){
+       checkAssessementPhase();
+    });
     function goBack() {
         window.history.back();
     }
 });
 
+function checkAssessementPhase(){
+    let studentId = $('#user').html().trim();
+    let projectId = $('#projectId').html().trim();
+    $.ajax({
+        url: '../rest/assessments/whatToRate/project/'+projectId+'/student/'+studentId,
+        type: 'GET',
+        headers: {
+            "Content-Type": "application/json",
+            "Cache-Control": "no-cache"
+        },
+        success: function (phase) {
+            switch (phase){
+                case "workRating":{
+                    document.location="finalAssessment.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
+                    break;
+                }
+                case "quiz":{
+                    location.href = "takeQuiz.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
+                    break;
+                }
+                case "contributionRating":{
+                    location.href = "rateContribution.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
+                    break;
+                }
+                case "done":{
+                    location.href = "project-student.jsp?token=" + getUserTokenFromUrl() + "&projectId=" + $('#projectId').html().trim();
+                    break;
+                }
+            }
+        },
+        error: function(a){
+        }
+    });
+}
+
 function getUserTokenFromUrl() {
     let parts = window.location.search.substr(1).split("&");
     let $_GET = {};
diff --git a/gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp b/gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp
index fd73ecc1..6d693e27 100644
--- a/gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/Quiz-docent.jsp
@@ -1,4 +1,4 @@
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
@@ -23,7 +23,7 @@
         <button class="btn btn-primary" id="newQuiz">neues Quiz</button>
 
     </div>
+    <footer:footer/>
 </div>
-<footer:footer/>
 </body>
 </html>
diff --git a/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp b/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp
index ad5514da..5e734136 100644
--- a/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/Quiz.jsp
@@ -1,4 +1,4 @@
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
@@ -23,7 +23,7 @@
         <button class="btn btn-primary" id="newQuiz">neues Quiz</button>
 
     </div>
+    <footer:footer/>
 </div>
-<footer:footer/>
 </body>
 </html>
diff --git a/gemeinsamforschen/src/main/webapp/pages/createQuiz.jsp b/gemeinsamforschen/src/main/webapp/pages/createQuiz.jsp
index 4aadc391..7601ff88 100644
--- a/gemeinsamforschen/src/main/webapp/pages/createQuiz.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/createQuiz.jsp
@@ -1,8 +1,8 @@
-<%@ page contentType="text/html;charset=UTF-8" language="java" %>
+<%@ page contentType="text/html;charset=UTF-8" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
-<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
+<%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="footer" %>
 
 <html>
 <head>
@@ -29,7 +29,7 @@
             <button id="save">speichern</button>
         </div>
     </div>
+    <footer:footer/>
 </div>
-<footer:footer/>
 </body>
 </html>
diff --git a/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp b/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp
index 7b7195bf..4a690859 100644
--- a/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/finalAssessments.jsp
@@ -420,9 +420,9 @@
             </table>
         </div>
     </div>
+    <footer:footer/>
 </div>
 
-<footer:footer/>
 </body>
 
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/project-student.jsp b/gemeinsamforschen/src/main/webapp/pages/project-student.jsp
index c5d52dcf..e9dc90a8 100644
--- a/gemeinsamforschen/src/main/webapp/pages/project-student.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/project-student.jsp
@@ -1,4 +1,4 @@
-<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
 <%--suppress XmlDuplicatedId --%>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
@@ -56,7 +56,6 @@
                                                                                   style="font-size:15px;"></i>feedback</label>
                                             </a>
                                         </li>
-                                        </a>
                                     </ul>
                                 </td>
                                 <td></td>
@@ -112,13 +111,6 @@
                         </table>
 
                         <button onclick="goBack()" class="btn btn-secondary">Zurueck</button>
-
-                        <script>
-                            function goBack() {
-                                window.history.back();
-                            }
-                        </script>
-
                     </td>
                 </tr>
             </table>
diff --git a/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp b/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp
index 192c9171..cfda957f 100644
--- a/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/rateContribution.jsp
@@ -1,4 +1,4 @@
-<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
+<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
@@ -72,8 +72,8 @@
             </table>
         </div>
     </div>
+    <footer:footer/>
 </div>
-<footer:footer/>
 </body>
 
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp b/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp
index f0e94d8a..a0c99526 100644
--- a/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/takeQuiz.jsp
@@ -37,8 +37,8 @@
             </table>
         </div>
     </div>
+    <footer:footer/>
 </div>
-<footer:footer/>
 </body>
 
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp b/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp
index 6dab081a..8cadd01e 100644
--- a/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp
+++ b/gemeinsamforschen/src/main/webapp/pages/viewQuiz.jsp
@@ -1,4 +1,4 @@
-<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
+<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="menu" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="headLine" %>
 <%@ taglib uri="../core/pages/gemeinsamForschen.tld" prefix="omniDependencies" %>
@@ -36,8 +36,8 @@
             </table>
         </div>
     </div>
+    <footer:footer/>
 </div>
-<footer:footer/>
 </body>
 
 </html>
\ No newline at end of file
diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java
index 9426d948..cb7e6b83 100644
--- a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java
+++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/assessment/TestAddAssessment.java
@@ -2,13 +2,71 @@ package unipotsdam.gf.modules.assessment;
 
 import org.junit.Test;
 import unipotsdam.gf.interfaces.IPeerAssessment;
-import unipotsdam.gf.modules.assessment.controller.model.Assessment;
+import unipotsdam.gf.modules.assessment.controller.model.*;
 import unipotsdam.gf.modules.assessment.controller.service.FBAssessement;
-import unipotsdam.gf.modules.assessment.controller.model.Performance;
-import unipotsdam.gf.modules.assessment.controller.model.StudentIdentifier;
+import unipotsdam.gf.modules.assessment.controller.service.PeerAssessment;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 public class TestAddAssessment {
 
+    private IPeerAssessment peer = new PeerAssessment();
+    private String studentId = "Kevin";
+    private String projectId = "test a la test";
+    private String quizId = "Whats a good Test?";
+
+    @Test
+    public void createQuiz(){
+        StudentAndQuiz studentAndQuiz = new StudentAndQuiz();
+        StudentIdentifier student = new StudentIdentifier(projectId, studentId);
+        studentAndQuiz.setStudentIdentifier(student);
+        Quiz quiz = new Quiz();
+        ArrayList<String> correctAnswers = new ArrayList<>();
+        correctAnswers.add("1");
+        correctAnswers.add("2");
+        correctAnswers.add("3");
+        ArrayList<String> incorrectAnswers = new ArrayList<>();
+        incorrectAnswers.add("4");
+        incorrectAnswers.add("5");
+        incorrectAnswers.add("6");
+        quiz.setQuestion(quizId);
+        quiz.setIncorrectAnswers(incorrectAnswers);
+        quiz.setType("mc");
+        quiz.setCorrectAnswers(correctAnswers);
+        studentAndQuiz.setQuiz(quiz);
+        peer.createQuiz(studentAndQuiz);
+    }
+
+    @Test
+    public void getAllQuizzesInProject(){
+        peer.getQuiz(projectId);
+    }
+
+    @Test
+    public void getQuiz(){
+        peer.getQuiz(projectId, quizId, studentId);
+    }
+
+    @Test
+    public void answerQuiz(){
+        Map<String, List<String>> questions = new HashMap<>();
+        StudentIdentifier student = new StudentIdentifier(projectId, studentId);
+        List<String> answers = new ArrayList<>();
+        answers.add("1");
+        answers.add("2");
+        answers.add("3");
+        questions.put(quizId, answers);
+        peer.answerQuiz(questions, student);
+    }
+
+    @Test
+    public void deleteQuiz(){
+        peer.deleteQuiz(quizId);
+    }
+
     @Test
     public void addTestAssessment() {
         IPeerAssessment iPeerAssessment = new FBAssessement();
-- 
GitLab