From 8ce045b33c132417b50b72fc5ef718b72ca54b69 Mon Sep 17 00:00:00 2001
From: Andreas Svanberg <andreass@dsv.su.se>
Date: Mon, 13 Jan 2025 16:25:11 +0100
Subject: [PATCH] Create test data

---
 .../se/su/dsv/scipro/DataInitializer.java     | 30 ++++++++++++++++---
 1 file changed, 26 insertions(+), 4 deletions(-)

diff --git a/core/src/main/java/se/su/dsv/scipro/DataInitializer.java b/core/src/main/java/se/su/dsv/scipro/DataInitializer.java
index 7ab805cd7a..80f06e8e64 100644
--- a/core/src/main/java/se/su/dsv/scipro/DataInitializer.java
+++ b/core/src/main/java/se/su/dsv/scipro/DataInitializer.java
@@ -7,8 +7,11 @@ import jakarta.transaction.Transactional;
 import java.time.LocalDate;
 import java.time.LocalTime;
 import java.time.Month;
+import java.time.ZonedDateTime;
 import java.util.*;
 import se.su.dsv.scipro.checklist.ChecklistCategory;
+import se.su.dsv.scipro.finalseminar.FinalSeminar;
+import se.su.dsv.scipro.finalseminar.FinalSeminarOpposition;
 import se.su.dsv.scipro.match.ApplicationPeriod;
 import se.su.dsv.scipro.match.Keyword;
 import se.su.dsv.scipro.milestones.dataobjects.MilestoneActivityTemplate;
@@ -75,6 +78,8 @@ public class DataInitializer implements Lifecycle {
     private ResearchArea researchArea2;
     private ProjectType masterClass;
     private ProjectType magisterClass;
+    private Project project1;
+    private Project project2;
 
     @Transactional
     @Override
@@ -89,12 +94,29 @@ public class DataInitializer implements Lifecycle {
             createMilestonesIfNotDone();
             createUsers();
             createProjects();
+            createPastFinalSeminar();
         }
         if (profile.getCurrentProfile() == Profiles.DEV && noAdminUser()) {
             createAdmin();
         }
     }
 
+    private void createPastFinalSeminar() {
+        FinalSeminar finalSeminar = new FinalSeminar();
+        finalSeminar.setStartDate(Date.from(ZonedDateTime.now().minusDays(1).toInstant()));
+        finalSeminar.setProject(project1);
+        finalSeminar.setRoom("zoom");
+        finalSeminar.setPresentationLanguage(Language.ENGLISH);
+
+        FinalSeminarOpposition opponent = new FinalSeminarOpposition();
+        opponent.setProject(project2);
+        opponent.setFinalSeminar(finalSeminar);
+        opponent.setUser(sid_student);
+        finalSeminar.addOpposition(opponent);
+
+        save(finalSeminar);
+    }
+
     @Override
     public void stop() {}
 
@@ -145,11 +167,11 @@ public class DataInitializer implements Lifecycle {
     }
 
     private void createProjects() {
-        createProject(PROJECT_1, eric_employee, sture_student, stina_student, eve_employee);
-        createProject(PROJECT_2, eve_employee, sid_student, simon_student, eric_employee);
+        project1 = createProject(PROJECT_1, eric_employee, sture_student, stina_student, eve_employee);
+        project2 = createProject(PROJECT_2, eve_employee, sid_student, simon_student, eric_employee);
     }
 
-    private void createProject(String title, User headSupervisor, User student1, User student2, User reviewer) {
+    private Project createProject(String title, User headSupervisor, User student1, User student2, User reviewer) {
         Project project = Project.builder()
             .title(title)
             .projectType(bachelorClass)
@@ -159,7 +181,7 @@ public class DataInitializer implements Lifecycle {
         project.addProjectParticipant(student2);
         project.addProjectParticipant(student1);
         project.addReviewer(reviewer);
-        save(project);
+        return save(project);
     }
 
     private void createUsers() {