Search in sources :

Example 1 with ExerciseGroup

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

the class DatabaseUtilService method addCourseExamExerciseGroupWithOneTextExercise.

public TextExercise addCourseExamExerciseGroupWithOneTextExercise() {
    ExerciseGroup exerciseGroup = addExerciseGroupWithExamAndCourse(true);
    TextExercise textExercise = ModelFactory.generateTextExerciseForExam(exerciseGroup);
    final var exercisesNrBefore = exerciseRepo.count();
    textExercise.setKnowledge(textAssessmentKnowledgeService.createNewKnowledge());
    exerciseRepo.save(textExercise);
    assertThat(exercisesNrBefore + 1).as("one exercise got stored").isEqualTo(exerciseRepo.count());
    return textExercise;
}
Also used : ExerciseGroup(de.tum.in.www1.artemis.domain.exam.ExerciseGroup)

Example 2 with ExerciseGroup

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

the class DatabaseUtilService method addCourseExamWithReviewDatesExerciseGroupWithOneTextExercise.

public TextExercise addCourseExamWithReviewDatesExerciseGroupWithOneTextExercise() {
    ExerciseGroup exerciseGroup = addExerciseGroupWithExamWithReviewDatesAndCourse(true);
    TextExercise textExercise = ModelFactory.generateTextExerciseForExam(exerciseGroup);
    final var exercisesNrBefore = exerciseRepo.count();
    exerciseRepo.save(textExercise);
    assertThat(exercisesNrBefore + 1).as("one exercise got stored").isEqualTo(exerciseRepo.count());
    return textExercise;
}
Also used : ExerciseGroup(de.tum.in.www1.artemis.domain.exam.ExerciseGroup)

Example 3 with ExerciseGroup

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

the class DatabaseUtilService method addExerciseGroupWithExamWithReviewDatesAndCourse.

public ExerciseGroup addExerciseGroupWithExamWithReviewDatesAndCourse(boolean mandatory) {
    Course course = ModelFactory.generateCourse(null, pastTimestamp, futureFutureTimestamp, new HashSet<>(), "tumuser", "tutor", "editor", "instructor");
    Exam exam = ModelFactory.generateExamWithStudentReviewDates(course);
    ExerciseGroup exerciseGroup = ModelFactory.generateExerciseGroup(mandatory, exam);
    final var courseNrBefore = courseRepo.count();
    final var examNrBefore = examRepository.count();
    final var exerciseGroupNrBefore = exerciseGroupRepository.count();
    courseRepo.save(course);
    examRepository.save(exam);
    assertThat(courseNrBefore + 1).as("a course got stored").isEqualTo(courseRepo.count());
    assertThat(examNrBefore + 1).as("an exam got stored").isEqualTo(examRepository.count());
    assertThat(exerciseGroupNrBefore + 1).as("an exerciseGroup got stored").isEqualTo(exerciseGroupRepository.count());
    Optional<Course> optionalCourse = courseRepo.findById(course.getId());
    assertThat(optionalCourse).as("course can be retrieved").isPresent();
    Course courseDB = optionalCourse.get();
    Optional<Exam> optionalExam = examRepository.findById(exam.getId());
    assertThat(optionalCourse).as("exam can be retrieved").isPresent();
    Exam examDB = optionalExam.get();
    Optional<ExerciseGroup> optionalExerciseGroup = exerciseGroupRepository.findById(exerciseGroup.getId());
    assertThat(optionalExerciseGroup).as("exerciseGroup can be retrieved").isPresent();
    ExerciseGroup exerciseGroupDB = optionalExerciseGroup.get();
    assertThat(examDB.getCourse().getId()).as("exam and course are linked correctly").isEqualTo(courseDB.getId());
    assertThat(exerciseGroupDB.getExam().getId()).as("exerciseGroup and exam are linked correctly").isEqualTo(examDB.getId());
    return exerciseGroup;
}
Also used : ExerciseGroup(de.tum.in.www1.artemis.domain.exam.ExerciseGroup) StudentExam(de.tum.in.www1.artemis.domain.exam.StudentExam) Exam(de.tum.in.www1.artemis.domain.exam.Exam)

Example 4 with ExerciseGroup

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

the class DatabaseUtilService method createCourseWithExamAndExercises.

public Course createCourseWithExamAndExercises() throws IOException {
    Course course = courseRepo.save(addEmptyCourse());
    // Create a file upload exercise with a dummy submission file
    var exerciseGroup1 = exerciseGroupRepository.save(new ExerciseGroup());
    var fileUploadExercise = ModelFactory.generateFileUploadExerciseForExam(".png", exerciseGroup1);
    fileUploadExercise = exerciseRepo.save(fileUploadExercise);
    createFileUploadSubmissionWithFile(fileUploadExercise, "uploaded-file.png");
    exerciseGroup1.addExercise(fileUploadExercise);
    exerciseGroup1 = exerciseGroupRepository.save(exerciseGroup1);
    // Create a text exercise with a dummy submission file
    var exerciseGroup2 = exerciseGroupRepository.save(new ExerciseGroup());
    var textExercise = ModelFactory.generateTextExerciseForExam(exerciseGroup2);
    textExercise = exerciseRepo.save(textExercise);
    var textSubmission = ModelFactory.generateTextSubmission("example text", Language.ENGLISH, true);
    saveTextSubmission(textExercise, textSubmission, "student1");
    exerciseGroup2.addExercise(textExercise);
    exerciseGroup2 = exerciseGroupRepository.save(exerciseGroup2);
    // Create a modeling exercise with a dummy submission file
    var exerciseGroup3 = exerciseGroupRepository.save(new ExerciseGroup());
    var modelingExercise = ModelFactory.generateModelingExerciseForExam(DiagramType.ClassDiagram, exerciseGroup2);
    modelingExercise = exerciseRepo.save(modelingExercise);
    String emptyActivityModel = FileUtils.loadFileFromResources("test-data/model-submission/empty-activity-diagram.json");
    var modelingSubmission = ModelFactory.generateModelingSubmission(emptyActivityModel, true);
    addSubmission(modelingExercise, modelingSubmission, "student1");
    exerciseGroup3.addExercise(modelingExercise);
    exerciseGroupRepository.save(exerciseGroup3);
    Exam exam = addExam(course);
    exam.setEndDate(ZonedDateTime.now().minusMinutes(5));
    exam.addExerciseGroup(exerciseGroup1);
    exam.addExerciseGroup(exerciseGroup2);
    examRepository.save(exam);
    return course;
}
Also used : JsonParser.parseString(com.google.gson.JsonParser.parseString) ExerciseGroup(de.tum.in.www1.artemis.domain.exam.ExerciseGroup) StudentExam(de.tum.in.www1.artemis.domain.exam.StudentExam) Exam(de.tum.in.www1.artemis.domain.exam.Exam)

Example 5 with ExerciseGroup

use of de.tum.in.www1.artemis.domain.exam.ExerciseGroup in project ArTEMiS by ls1intum.

the class DatabaseUtilService method addCourseExamExerciseGroupWithOneProgrammingExercise.

public ProgrammingExercise addCourseExamExerciseGroupWithOneProgrammingExercise() {
    ExerciseGroup exerciseGroup = addExerciseGroupWithExamAndCourse(true);
    ProgrammingExercise programmingExercise = new ProgrammingExercise();
    programmingExercise.setExerciseGroup(exerciseGroup);
    populateProgrammingExercise(programmingExercise, "TESTEXFOREXAM", "Testtitle", false);
    programmingExercise = programmingExerciseRepository.save(programmingExercise);
    programmingExercise = addSolutionParticipationForProgrammingExercise(programmingExercise);
    programmingExercise = addTemplateParticipationForProgrammingExercise(programmingExercise);
    return programmingExercise;
}
Also used : ExerciseGroup(de.tum.in.www1.artemis.domain.exam.ExerciseGroup)

Aggregations

ExerciseGroup (de.tum.in.www1.artemis.domain.exam.ExerciseGroup)126 WithMockUser (org.springframework.security.test.context.support.WithMockUser)76 Test (org.junit.jupiter.api.Test)70 Exam (de.tum.in.www1.artemis.domain.exam.Exam)64 StudentExam (de.tum.in.www1.artemis.domain.exam.StudentExam)46 ModelingExercise (de.tum.in.www1.artemis.domain.modeling.ModelingExercise)46 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)24 QuizExercise (de.tum.in.www1.artemis.domain.quiz.QuizExercise)22 PreAuthorize (org.springframework.security.access.prepost.PreAuthorize)22 AbstractSpringIntegrationBambooBitbucketJiraTest (de.tum.in.www1.artemis.AbstractSpringIntegrationBambooBitbucketJiraTest)20 BadRequestAlertException (de.tum.in.www1.artemis.web.rest.errors.BadRequestAlertException)20 StudentParticipation (de.tum.in.www1.artemis.domain.participation.StudentParticipation)18 EntityNotFoundException (de.tum.in.www1.artemis.web.rest.errors.EntityNotFoundException)14 TextExercise (de.tum.in.www1.artemis.domain.TextExercise)12 ZonedDateTime (java.time.ZonedDateTime)12 de.tum.in.www1.artemis.domain (de.tum.in.www1.artemis.domain)10 de.tum.in.www1.artemis.repository (de.tum.in.www1.artemis.repository)10 Collectors (java.util.stream.Collectors)10 ModelingSubmission (de.tum.in.www1.artemis.domain.modeling.ModelingSubmission)8 Participation (de.tum.in.www1.artemis.domain.participation.Participation)8