87: Add test data

This commit is contained in:
Tom Zhao 2025-04-16 10:28:42 +02:00
parent 299c67e8dd
commit 25b87579eb

@ -1,11 +1,20 @@
package se.su.dsv.scipro.testdata.populators;
import jakarta.inject.Inject;
import java.io.InputStream;
import java.time.LocalDate;
import java.time.Year;
import java.util.Optional;
import java.util.Set;
import java.util.function.Function;
import org.springframework.stereotype.Service;
import se.su.dsv.scipro.file.FileUpload;
import se.su.dsv.scipro.project.Project;
import se.su.dsv.scipro.project.ProjectService;
import se.su.dsv.scipro.reviewing.ReviewerAssignmentService;
import se.su.dsv.scipro.reviewing.ReviewerCapacityService;
import se.su.dsv.scipro.reviewing.RoughDraftApproval;
import se.su.dsv.scipro.reviewing.RoughDraftApprovalService;
import se.su.dsv.scipro.system.User;
import se.su.dsv.scipro.testdata.BaseData;
import se.su.dsv.scipro.testdata.Factory;
@ -15,15 +24,25 @@ import se.su.dsv.scipro.testdata.TestDataPopulator;
public class SplitProjectPopulator implements TestDataPopulator {
private final ProjectService projectService;
private final ReviewerCapacityService reviewerCapacityService;
private final RoughDraftApprovalService roughDraftApprovalService;
private final ReviewerAssignmentService reviewerAssignmentService;
@Inject
public SplitProjectPopulator(ProjectService projectService) {
public SplitProjectPopulator(
ProjectService projectService,
ReviewerCapacityService reviewerCapacityService,
RoughDraftApprovalService roughDraftApprovalService,
ReviewerAssignmentService reviewerAssignmentService
) {
this.projectService = projectService;
this.reviewerCapacityService = reviewerCapacityService;
this.roughDraftApprovalService = roughDraftApprovalService;
this.reviewerAssignmentService = reviewerAssignmentService;
}
@Override
public void populate(BaseData baseData, Factory factory) {
System.out.println("How do I do?");
User supervisor = factory.createSupervisor("Emil");
User author1 = factory.createAuthor("Scott");
@ -31,6 +50,8 @@ public class SplitProjectPopulator implements TestDataPopulator {
User reviewer = factory.createReviewer("Elias");
reviewerCapacityService.assignTarget(reviewer, new ReviewerCapacityService.Target(Year.now(), 3, 3, ""));
Project project = Project.builder()
.title("Operating System Boot Time Security")
.projectType(baseData.bachelor())
@ -41,5 +62,41 @@ public class SplitProjectPopulator implements TestDataPopulator {
.build();
projectService.save(project);
roughDraftApprovalService.requestApproval(project, dummyFile(), "Request review.");
reviewerAssignmentService.assignReviewer(project, reviewer);
Optional<RoughDraftApproval> optional = roughDraftApprovalService.findBy(project);
optional.ifPresent(rda -> rda.approve("Approve! Good Work!", Optional.empty()));
}
private FileUpload dummyFile() {
return new FileUpload() {
@Override
public String getFileName() {
return "dummy.tmp";
}
@Override
public String getContentType() {
return "text/plain";
}
@Override
public User getUploader() {
return null;
}
@Override
public long getSize() {
return 0;
}
@Override
public <T> T handleData(Function<InputStream, T> handler) {
return handler.apply(InputStream.nullInputStream());
}
};
}
}