use of de.tum.in.www1.artemis.domain.enumeration.AssessmentType in project ArTEMiS by ls1intum.
the class DatabaseUtilService method addResultToSubmission.
public Submission addResultToSubmission(final Submission submission, AssessmentType assessmentType, User user, String resultString, Double score, boolean rated, ZonedDateTime completionDate) {
Result result = new Result().participation(submission.getParticipation()).assessmentType(assessmentType).resultString(resultString).score(score).rated(rated).completionDate(completionDate);
result.setAssessor(user);
result = resultRepo.save(result);
result.setSubmission(submission);
submission.addResult(result);
var savedSubmission = submissionRepository.save(submission);
return submissionRepository.findWithEagerResultsAndAssessorById(savedSubmission.getId()).orElseThrow();
}
use of de.tum.in.www1.artemis.domain.enumeration.AssessmentType in project ArTEMiS by ls1intum.
the class DatabaseUtilService method addResultToParticipation.
public Result addResultToParticipation(AssessmentType assessmentType, ZonedDateTime completionDate, Participation participation, String resultString, String assessorLogin, List<Feedback> feedbacks) {
Result result = new Result().participation(participation).resultString(resultString).assessmentType(assessmentType).completionDate(completionDate).feedbacks(feedbacks);
result.setAssessor(getUserByLogin(assessorLogin));
return resultRepo.save(result);
}
use of de.tum.in.www1.artemis.domain.enumeration.AssessmentType in project Artemis by ls1intum.
the class ResultServiceTest method testGetFeedbacksForResultAsStudentShouldOnlyFilterAutomaticResultBeforeLastDueDate.
@ParameterizedTest(name = "{displayName} [{index}] {argumentsWithNames}")
@EnumSource(AssessmentType.class)
@WithMockUser(username = "student1", roles = "STUDENT")
public void testGetFeedbacksForResultAsStudentShouldOnlyFilterAutomaticResultBeforeLastDueDate(AssessmentType assessmentType) {
programmingExercise.setDueDate(ZonedDateTime.now().minusHours(2));
programmingExercise.setAssessmentDueDate(null);
programmingExercise = programmingExerciseRepository.save(programmingExercise);
final var participation2 = database.addStudentParticipationForProgrammingExercise(programmingExercise, "student2");
participation2.setIndividualDueDate(ZonedDateTime.now().plusDays(2));
participationRepository.save(participation2);
Result result = database.addResultToParticipation(assessmentType, null, programmingExerciseStudentParticipation);
result = database.addVariousVisibilityFeedbackToResults(result);
result = database.addFeedbackToResult(ModelFactory.createPositiveFeedback(FeedbackType.MANUAL), result);
List<Feedback> expectedFeedbacks;
if (AssessmentType.AUTOMATIC == assessmentType) {
expectedFeedbacks = result.getFeedbacks().stream().filter(feedback -> !feedback.isInvisible() && !feedback.isAfterDueDate()).collect(Collectors.toList());
assertThat(expectedFeedbacks).hasSize(2);
} else {
expectedFeedbacks = result.getFeedbacks().stream().filter(feedback -> !feedback.isInvisible()).collect(Collectors.toList());
assertThat(expectedFeedbacks).hasSize(3);
}
assertThat(resultService.getFeedbacksForResult(result)).isEqualTo(expectedFeedbacks);
}
use of de.tum.in.www1.artemis.domain.enumeration.AssessmentType in project Artemis by ls1intum.
the class ResultServiceTest method testGetFeedbacksForResultAsStudentShouldNotFilterAfterLatestDueDate.
@ParameterizedTest(name = "{displayName} [{index}] {argumentsWithNames}")
@EnumSource(AssessmentType.class)
@WithMockUser(username = "student1", roles = "STUDENT")
public void testGetFeedbacksForResultAsStudentShouldNotFilterAfterLatestDueDate(AssessmentType assessmentType) {
programmingExercise.setDueDate(ZonedDateTime.now().minusHours(2));
programmingExercise.setAssessmentDueDate(null);
programmingExercise = programmingExerciseRepository.save(programmingExercise);
final var participation2 = database.addStudentParticipationForProgrammingExercise(programmingExercise, "student2");
participation2.setIndividualDueDate(ZonedDateTime.now().minusHours(1));
participationRepository.save(participation2);
Result result = database.addResultToParticipation(assessmentType, null, programmingExerciseStudentParticipation);
result = database.addVariousVisibilityFeedbackToResults(result);
result = database.addFeedbackToResult(ModelFactory.createPositiveFeedback(FeedbackType.MANUAL), result);
List<Feedback> expectedFeedbacks;
expectedFeedbacks = result.getFeedbacks().stream().filter(feedback -> !feedback.isInvisible()).collect(Collectors.toList());
assertThat(expectedFeedbacks).hasSize(3);
assertThat(resultService.getFeedbacksForResult(result)).isEqualTo(expectedFeedbacks);
}
Aggregations