Search in sources :

Example 1 with TextExercise

use of de.tum.in.www1.artemis.domain.TextExercise in project Artemis by ls1intum.

the class ModelingExerciseImportService method copyExampleSubmission.

/**
 * This functions does a hard copy of the example submissions contained in {@code templateExercise}.
 * To copy the corresponding Submission entity this function calls {@link #copySubmission(Submission)}
 *
 * @param templateExercise {TextExercise} The original exercise from which to fetch the example submissions
 * @param newExercise The new exercise in which we will insert the example submissions
 * @return The cloned set of example submissions
 */
@Override
Set<ExampleSubmission> copyExampleSubmission(Exercise templateExercise, Exercise newExercise) {
    log.debug("Copying the ExampleSubmissions to new Exercise: {}", newExercise);
    Set<ExampleSubmission> newExampleSubmissions = new HashSet<>();
    for (ExampleSubmission originalExampleSubmission : templateExercise.getExampleSubmissions()) {
        ModelingSubmission originalSubmission = (ModelingSubmission) originalExampleSubmission.getSubmission();
        ModelingSubmission newSubmission = (ModelingSubmission) copySubmission(originalSubmission);
        ExampleSubmission newExampleSubmission = new ExampleSubmission();
        newExampleSubmission.setExercise(newExercise);
        newExampleSubmission.setSubmission(newSubmission);
        newExampleSubmission.setAssessmentExplanation(originalExampleSubmission.getAssessmentExplanation());
        exampleSubmissionRepository.save(newExampleSubmission);
        newExampleSubmissions.add(newExampleSubmission);
    }
    return newExampleSubmissions;
}
Also used : ModelingSubmission(de.tum.in.www1.artemis.domain.modeling.ModelingSubmission) HashSet(java.util.HashSet)

Example 2 with TextExercise

use of de.tum.in.www1.artemis.domain.TextExercise in project Artemis by ls1intum.

the class PlagiarismIntegrationTest method updatePlagiarismComparisonFinalStatusForUnknownStudent.

/**
 * Checks the method updatePlagiarismComparisonFinalStatus for unknown student
 */
@Test
@WithMockUser(username = "instructor1", roles = "INSTRUCTOR")
public void updatePlagiarismComparisonFinalStatusForUnknownStudent() throws Exception {
    Course course = database.addCourseWithOneFinishedTextExercise();
    TextExercise textExercise = textExerciseRepository.findByCourseIdWithCategories(course.getId()).get(0);
    TextPlagiarismResult textPlagiarismResult = database.createTextPlagiarismResultForExercise(textExercise);
    PlagiarismComparison<TextSubmissionElement> plagiarismComparison = new PlagiarismComparison<>();
    PlagiarismSubmission<TextSubmissionElement> submissionA = new PlagiarismSubmission<>();
    submissionA.setStudentLogin("student1");
    PlagiarismSubmission<TextSubmissionElement> submissionB = new PlagiarismSubmission<>();
    submissionB.setStudentLogin("student2");
    plagiarismComparison.setInstructorStatementB(INSTRUCTOR_STATEMENT_B);
    plagiarismComparison.setPlagiarismResult(textPlagiarismResult);
    plagiarismComparison.setStatusB(PlagiarismStatus.NONE);
    plagiarismComparison.setSubmissionA(submissionA);
    plagiarismComparison.setSubmissionB(submissionB);
    plagiarismComparisonRepository.save(plagiarismComparison);
    request.put("/api/courses/" + course.getId() + "/plagiarism-comparisons/" + plagiarismComparison.getId() + "/final-status/student42", new PlagiarismComparisonStatusDTO(), HttpStatus.NOT_FOUND);
}
Also used : PlagiarismComparison(de.tum.in.www1.artemis.domain.plagiarism.PlagiarismComparison) TextPlagiarismResult(de.tum.in.www1.artemis.domain.plagiarism.text.TextPlagiarismResult) PlagiarismSubmission(de.tum.in.www1.artemis.domain.plagiarism.PlagiarismSubmission) TextExercise(de.tum.in.www1.artemis.domain.TextExercise) Course(de.tum.in.www1.artemis.domain.Course) TextSubmissionElement(de.tum.in.www1.artemis.domain.plagiarism.text.TextSubmissionElement) PlagiarismComparisonStatusDTO(de.tum.in.www1.artemis.web.rest.dto.PlagiarismComparisonStatusDTO) WithMockUser(org.springframework.security.test.context.support.WithMockUser) Test(org.junit.jupiter.api.Test)

Example 3 with TextExercise

use of de.tum.in.www1.artemis.domain.TextExercise in project Artemis by ls1intum.

the class PlagiarismIntegrationTest method getPlagiarismComparisonsForEditor.

@Test
@WithMockUser(username = "editor1", roles = "EDITOR")
public void getPlagiarismComparisonsForEditor() throws Exception {
    Course course = database.addCourseWithOneFinishedTextExercise();
    TextExercise textExercise = textExerciseRepository.findByCourseIdWithCategories(course.getId()).get(0);
    TextPlagiarismResult textPlagiarismResult = database.createTextPlagiarismResultForExercise(textExercise);
    PlagiarismComparison<TextSubmissionElement> plagiarismComparison1 = new PlagiarismComparison<>();
    plagiarismComparison1.setPlagiarismResult(textPlagiarismResult);
    plagiarismComparison1.setStatus(PlagiarismStatus.CONFIRMED);
    var savedComparison = plagiarismComparisonRepository.save(plagiarismComparison1);
    var comparison = request.get("/api/courses/" + course.getId() + "/plagiarism-comparisons/" + savedComparison.getId() + "/for-split-view", HttpStatus.OK, plagiarismComparison1.getClass());
    assertThat(comparison.getPlagiarismResult()).isEqualTo(textPlagiarismResult);
}
Also used : PlagiarismComparison(de.tum.in.www1.artemis.domain.plagiarism.PlagiarismComparison) TextPlagiarismResult(de.tum.in.www1.artemis.domain.plagiarism.text.TextPlagiarismResult) TextExercise(de.tum.in.www1.artemis.domain.TextExercise) Course(de.tum.in.www1.artemis.domain.Course) TextSubmissionElement(de.tum.in.www1.artemis.domain.plagiarism.text.TextSubmissionElement) WithMockUser(org.springframework.security.test.context.support.WithMockUser) Test(org.junit.jupiter.api.Test)

Example 4 with TextExercise

use of de.tum.in.www1.artemis.domain.TextExercise in project Artemis by ls1intum.

the class PlagiarismIntegrationTest method getPlagiarismComparisonsForCourse_instructor.

/**
 * Checks the method getPlagiarismComparisonsForCourse as instructor
 */
@Test
@WithMockUser(username = "instructor1", roles = "INSTRUCTOR")
public void getPlagiarismComparisonsForCourse_instructor() throws Exception {
    Course course = database.addCourseWithOneFinishedTextExercise();
    TextExercise textExercise = textExerciseRepository.findByCourseIdWithCategories(course.getId()).get(0);
    TextPlagiarismResult textPlagiarismResult = database.createTextPlagiarismResultForExercise(textExercise);
    PlagiarismComparison<TextSubmissionElement> plagiarismComparison1 = new PlagiarismComparison<>();
    plagiarismComparison1.setPlagiarismResult(textPlagiarismResult);
    plagiarismComparison1.setStatus(PlagiarismStatus.CONFIRMED);
    PlagiarismComparison<TextSubmissionElement> plagiarismComparison2 = new PlagiarismComparison<>();
    plagiarismComparison2.setPlagiarismResult(textPlagiarismResult);
    plagiarismComparison2.setStatus(PlagiarismStatus.CONFIRMED);
    plagiarismComparisonRepository.save(plagiarismComparison1);
    plagiarismComparisonRepository.save(plagiarismComparison2);
    var comparisons = request.getList("/api/courses/" + course.getId() + "/plagiarism-cases", HttpStatus.OK, plagiarismComparison1.getClass());
    assertThat(comparisons.size()).isEqualTo(2);
}
Also used : PlagiarismComparison(de.tum.in.www1.artemis.domain.plagiarism.PlagiarismComparison) TextPlagiarismResult(de.tum.in.www1.artemis.domain.plagiarism.text.TextPlagiarismResult) TextExercise(de.tum.in.www1.artemis.domain.TextExercise) Course(de.tum.in.www1.artemis.domain.Course) TextSubmissionElement(de.tum.in.www1.artemis.domain.plagiarism.text.TextSubmissionElement) WithMockUser(org.springframework.security.test.context.support.WithMockUser) Test(org.junit.jupiter.api.Test)

Example 5 with TextExercise

use of de.tum.in.www1.artemis.domain.TextExercise in project Artemis by ls1intum.

the class PlagiarismIntegrationTest method saveInstructorStatementForStudentB.

/**
 * Checks the method updatePlagiarismComparisonInstructorStatement for student B
 */
@Test
@WithMockUser(username = "instructor1", roles = "INSTRUCTOR")
public void saveInstructorStatementForStudentB() throws Exception {
    Course course = database.addCourseWithOneFinishedTextExercise();
    TextExercise textExercise = textExerciseRepository.findByCourseIdWithCategories(course.getId()).get(0);
    TextPlagiarismResult textPlagiarismResult = database.createTextPlagiarismResultForExercise(textExercise);
    PlagiarismComparison<TextSubmissionElement> plagiarismComparison = new PlagiarismComparison<>();
    plagiarismComparison.setPlagiarismResult(textPlagiarismResult);
    PlagiarismSubmission<TextSubmissionElement> submissionA = new PlagiarismSubmission<>();
    PlagiarismSubmission<TextSubmissionElement> submissionB = new PlagiarismSubmission<>();
    submissionA.setStudentLogin("student1");
    submissionB.setStudentLogin("student2");
    plagiarismComparison.setSubmissionA(submissionA);
    plagiarismComparison.setSubmissionB(submissionB);
    plagiarismComparisonRepository.save(plagiarismComparison);
    var statement = new PlagiarismResource.PlagiarismStatementDTO();
    statement.statement = "test statement";
    request.put("/api/courses/" + course.getId() + "/plagiarism-comparisons/" + plagiarismComparison.getId() + "/instructor-statement/student2", statement, HttpStatus.OK);
    var comparison = plagiarismComparisonRepository.findByIdWithSubmissionsStudentsElseThrow(plagiarismComparison.getId());
    assertThat(comparison.getInstructorStatementB()).as("should update instructor statement").isEqualTo("test statement");
}
Also used : PlagiarismComparison(de.tum.in.www1.artemis.domain.plagiarism.PlagiarismComparison) TextPlagiarismResult(de.tum.in.www1.artemis.domain.plagiarism.text.TextPlagiarismResult) PlagiarismSubmission(de.tum.in.www1.artemis.domain.plagiarism.PlagiarismSubmission) TextExercise(de.tum.in.www1.artemis.domain.TextExercise) Course(de.tum.in.www1.artemis.domain.Course) TextSubmissionElement(de.tum.in.www1.artemis.domain.plagiarism.text.TextSubmissionElement) WithMockUser(org.springframework.security.test.context.support.WithMockUser) Test(org.junit.jupiter.api.Test)

Aggregations

WithMockUser (org.springframework.security.test.context.support.WithMockUser)109 Test (org.junit.jupiter.api.Test)105 ModelingExercise (de.tum.in.www1.artemis.domain.modeling.ModelingExercise)58 TextExercise (de.tum.in.www1.artemis.domain.TextExercise)51 StudentParticipation (de.tum.in.www1.artemis.domain.participation.StudentParticipation)50 ModelingSubmission (de.tum.in.www1.artemis.domain.modeling.ModelingSubmission)44 TextPlagiarismResult (de.tum.in.www1.artemis.domain.plagiarism.text.TextPlagiarismResult)41 Course (de.tum.in.www1.artemis.domain.Course)31 Exam (de.tum.in.www1.artemis.domain.exam.Exam)30 ExerciseGroup (de.tum.in.www1.artemis.domain.exam.ExerciseGroup)30 BeforeEach (org.junit.jupiter.api.BeforeEach)26 TextSubmissionElement (de.tum.in.www1.artemis.domain.plagiarism.text.TextSubmissionElement)25 PlagiarismComparison (de.tum.in.www1.artemis.domain.plagiarism.PlagiarismComparison)23 AbstractSpringIntegrationBambooBitbucketJiraTest (de.tum.in.www1.artemis.AbstractSpringIntegrationBambooBitbucketJiraTest)22 PlagiarismSubmission (de.tum.in.www1.artemis.domain.plagiarism.PlagiarismSubmission)22 LinkedMultiValueMap (org.springframework.util.LinkedMultiValueMap)22 Participation (de.tum.in.www1.artemis.domain.participation.Participation)16 TextAssessmentDTO (de.tum.in.www1.artemis.web.rest.dto.TextAssessmentDTO)16 ModelingPlagiarismResult (de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingPlagiarismResult)14 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)14