Search in sources :

Example 21 with AssessmentType

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();
}
Also used : TextPlagiarismResult(de.tum.in.www1.artemis.domain.plagiarism.text.TextPlagiarismResult) ModelingPlagiarismResult(de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingPlagiarismResult)

Example 22 with AssessmentType

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);
}
Also used : TextPlagiarismResult(de.tum.in.www1.artemis.domain.plagiarism.text.TextPlagiarismResult) ModelingPlagiarismResult(de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingPlagiarismResult)

Example 23 with AssessmentType

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);
}
Also used : Feedback(de.tum.in.www1.artemis.domain.Feedback) Result(de.tum.in.www1.artemis.domain.Result) WithMockUser(org.springframework.security.test.context.support.WithMockUser) EnumSource(org.junit.jupiter.params.provider.EnumSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 24 with AssessmentType

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);
}
Also used : Feedback(de.tum.in.www1.artemis.domain.Feedback) Result(de.tum.in.www1.artemis.domain.Result) WithMockUser(org.springframework.security.test.context.support.WithMockUser) EnumSource(org.junit.jupiter.params.provider.EnumSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Aggregations

Test (org.junit.jupiter.api.Test)10 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)10 WithMockUser (org.springframework.security.test.context.support.WithMockUser)10 AssessmentType (de.tum.in.www1.artemis.domain.enumeration.AssessmentType)8 EnumSource (org.junit.jupiter.params.provider.EnumSource)8 Feedback (de.tum.in.www1.artemis.domain.Feedback)6 ModelingPlagiarismResult (de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingPlagiarismResult)6 TextPlagiarismResult (de.tum.in.www1.artemis.domain.plagiarism.text.TextPlagiarismResult)6 AbstractSpringIntegrationBambooBitbucketJiraTest (de.tum.in.www1.artemis.AbstractSpringIntegrationBambooBitbucketJiraTest)4 ProgrammingExercise (de.tum.in.www1.artemis.domain.ProgrammingExercise)4 ProgrammingExerciseTestCase (de.tum.in.www1.artemis.domain.ProgrammingExerciseTestCase)4 Result (de.tum.in.www1.artemis.domain.Result)4 StudentParticipation (de.tum.in.www1.artemis.domain.participation.StudentParticipation)4 BadRequestAlertException (de.tum.in.www1.artemis.web.rest.errors.BadRequestAlertException)4 ProgrammingLanguage (de.tum.in.www1.artemis.domain.enumeration.ProgrammingLanguage)2 Visibility (de.tum.in.www1.artemis.domain.enumeration.Visibility)2 ProgrammingExerciseTestCaseType (de.tum.in.www1.artemis.domain.hestia.ProgrammingExerciseTestCaseType)2 Participation (de.tum.in.www1.artemis.domain.participation.Participation)2 ProgrammingExerciseStudentParticipation (de.tum.in.www1.artemis.domain.participation.ProgrammingExerciseStudentParticipation)2 SolutionProgrammingExerciseParticipation (de.tum.in.www1.artemis.domain.participation.SolutionProgrammingExerciseParticipation)2