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;
}
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);
}
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);
}
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);
}
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");
}
Aggregations