From d01dee1ec78cfaca8f4ae90a658df350829ee208 Mon Sep 17 00:00:00 2001 From: Andreas Svanberg <andreass@dsv.su.se> Date: Mon, 20 Jan 2025 13:19:03 +0100 Subject: [PATCH] Add a thesis document to the final seminar to help testing --- .../se/su/dsv/scipro/DataInitializer.java | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) 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 80f06e8e64..98ebc08e63 100644 --- a/core/src/main/java/se/su/dsv/scipro/DataInitializer.java +++ b/core/src/main/java/se/su/dsv/scipro/DataInitializer.java @@ -4,12 +4,18 @@ import jakarta.inject.Inject; import jakarta.inject.Provider; import jakarta.persistence.EntityManager; import jakarta.transaction.Transactional; +import java.io.ByteArrayInputStream; +import java.io.InputStream; import java.time.LocalDate; import java.time.LocalTime; import java.time.Month; import java.time.ZonedDateTime; import java.util.*; +import java.util.function.Function; import se.su.dsv.scipro.checklist.ChecklistCategory; +import se.su.dsv.scipro.file.FileReference; +import se.su.dsv.scipro.file.FileService; +import se.su.dsv.scipro.file.FileUpload; import se.su.dsv.scipro.finalseminar.FinalSeminar; import se.su.dsv.scipro.finalseminar.FinalSeminarOpposition; import se.su.dsv.scipro.match.ApplicationPeriod; @@ -42,6 +48,9 @@ public class DataInitializer implements Lifecycle { @Inject private MilestoneActivityTemplateService milestoneActivityTemplateService; + @Inject + private FileService fileService; + @Inject private CurrentProfile profile; @@ -102,11 +111,17 @@ public class DataInitializer implements Lifecycle { } private void createPastFinalSeminar() { + FileReference document = fileService.storeFile( + new SimpleTextFile(sture_student, "document.txt", "Hello World") + ); + FinalSeminar finalSeminar = new FinalSeminar(); finalSeminar.setStartDate(Date.from(ZonedDateTime.now().minusDays(1).toInstant())); finalSeminar.setProject(project1); finalSeminar.setRoom("zoom"); finalSeminar.setPresentationLanguage(Language.ENGLISH); + finalSeminar.setDocument(document); + finalSeminar.setDocumentUploadDate(document.getFileDescription().getDateCreated()); FinalSeminarOpposition opponent = new FinalSeminarOpposition(); opponent.setProject(project2); @@ -1924,4 +1939,42 @@ public class DataInitializer implements Lifecycle { em.get().persist(entity); return entity; } + + private static final class SimpleTextFile implements FileUpload { + + private final User uploader; + private final String fileName; + private final String content; + + private SimpleTextFile(User uploader, String fileName, String content) { + this.uploader = uploader; + this.fileName = fileName; + this.content = content; + } + + @Override + public String getFileName() { + return fileName; + } + + @Override + public String getContentType() { + return "text/plain"; + } + + @Override + public User getUploader() { + return uploader; + } + + @Override + public long getSize() { + return content.length(); + } + + @Override + public <T> T handleData(Function<InputStream, T> handler) { + return handler.apply(new ByteArrayInputStream(content.getBytes())); + } + } }