Search in sources :

Example 36 with ModelingExercise

use of de.tum.in.www1.artemis.domain.modeling.ModelingExercise in project ArTEMiS by ls1intum.

the class ExampleSubmissionIntegrationTest method createAndDeleteExampleModelingSubmissionWithResult.

@ParameterizedTest(name = "{displayName} [{index}] {argumentsWithNames}")
@ValueSource(booleans = { true, false })
@WithMockUser(username = "instructor1", roles = "INSTRUCTOR")
public void createAndDeleteExampleModelingSubmissionWithResult(boolean usedForTutorial) throws Exception {
    exampleSubmission = database.generateExampleSubmission(validModel, modelingExercise, false, usedForTutorial);
    exampleSubmission.addTutorParticipations(new TutorParticipation());
    ExampleSubmission returnedExampleSubmission = request.postWithResponseBody("/api/exercises/" + modelingExercise.getId() + "/example-submissions", exampleSubmission, ExampleSubmission.class, HttpStatus.OK);
    Long submissionId = returnedExampleSubmission.getSubmission().getId();
    database.checkModelingSubmissionCorrectlyStored(submissionId, validModel);
    Optional<ExampleSubmission> storedExampleSubmission = exampleSubmissionRepo.findBySubmissionId(submissionId);
    assertThat(storedExampleSubmission).as("example submission correctly stored").isPresent();
    assertThat(storedExampleSubmission.get().getSubmission().isExampleSubmission()).as("submission flagged as example submission").isTrue();
    request.delete("/api/example-submissions/" + storedExampleSubmission.get().getId(), HttpStatus.OK);
    assertThat(exampleSubmissionRepo.findAllByExerciseId(submissionId)).isEmpty();
}
Also used : TutorParticipation(de.tum.in.www1.artemis.domain.participation.TutorParticipation) WithMockUser(org.springframework.security.test.context.support.WithMockUser) ValueSource(org.junit.jupiter.params.provider.ValueSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 37 with ModelingExercise

use of de.tum.in.www1.artemis.domain.modeling.ModelingExercise in project ArTEMiS by ls1intum.

the class FileUploadSubmissionIntegrationTest method getFileUploadSubmissionWithoutAssessment_wrongExerciseType.

@Test
@WithMockUser(username = "tutor1", roles = "TA")
public void getFileUploadSubmissionWithoutAssessment_wrongExerciseType() throws Exception {
    Course course = database.addCourseWithOneModelingExercise();
    ModelingExercise modelingExercise = database.findModelingExerciseWithTitle(course.getExercises(), "ClassDiagram");
    request.get("/api/exercises/" + modelingExercise.getId() + "/file-upload-submission-without-assessment", HttpStatus.BAD_REQUEST, FileUploadSubmission.class);
}
Also used : ModelingExercise(de.tum.in.www1.artemis.domain.modeling.ModelingExercise) WithMockUser(org.springframework.security.test.context.support.WithMockUser) Test(org.junit.jupiter.api.Test)

Example 38 with ModelingExercise

use of de.tum.in.www1.artemis.domain.modeling.ModelingExercise in project ArTEMiS by ls1intum.

the class FileUploadSubmissionIntegrationTest method getDataForFileUpload_wrongExerciseType.

@Test
@WithMockUser(username = "student1")
public void getDataForFileUpload_wrongExerciseType() throws Exception {
    Course course = database.addCourseWithOneModelingExercise();
    ModelingExercise modelingExercise = database.findModelingExerciseWithTitle(course.getExercises(), "ClassDiagram");
    Participation modelingExerciseParticipation = database.createAndSaveParticipationForExercise(modelingExercise, "student1");
    FileUploadSubmission submission = request.get("/api/participations/" + modelingExerciseParticipation.getId() + "/file-upload-editor", HttpStatus.BAD_REQUEST, FileUploadSubmission.class);
    assertThat(submission).isNull();
}
Also used : Participation(de.tum.in.www1.artemis.domain.participation.Participation) StudentParticipation(de.tum.in.www1.artemis.domain.participation.StudentParticipation) ModelingExercise(de.tum.in.www1.artemis.domain.modeling.ModelingExercise) WithMockUser(org.springframework.security.test.context.support.WithMockUser) Test(org.junit.jupiter.api.Test)

Example 39 with ModelingExercise

use of de.tum.in.www1.artemis.domain.modeling.ModelingExercise in project ArTEMiS by ls1intum.

the class AssessmentKnowledgeIntegrationTest method testKeepModelAssessmentKnowledgeWhenExerciseIsDeletedIfOtherExercisesUseIt.

/**
 * Tests that ModelAssessmentKnowledge is not removed from the DB even after deleting
 * the parent exercise if there are other exercises using it
 *
 * @throws Exception might be thrown from Network Call to Artemis API
 */
@Test
@WithMockUser(username = "instructor1", roles = "INSTRUCTOR")
public void testKeepModelAssessmentKnowledgeWhenExerciseIsDeletedIfOtherExercisesUseIt() throws Exception {
    final Course course = database.addCourseWithOneReleasedModelExerciseWithKnowledge();
    ModelingExercise modelingExercise = modelingExerciseRepository.findByCourseIdWithCategories(course.getId()).get(0);
    request.postWithResponseBody("/api/modeling-exercises/import/" + modelingExercise.getId(), modelingExercise, ModelingExercise.class, HttpStatus.CREATED);
    int exerciseCount = modelingExerciseRepository.findAll().size();
    int modelAssessmentKnowledgeCount = modelAssessmentKnowledgeRepository.findAll().size();
    request.delete("/api/modeling-exercises/" + modelingExercise.getId(), HttpStatus.OK);
    assertThat(modelingExerciseRepository.findAll()).hasSize(exerciseCount - 1);
    assertThat(modelAssessmentKnowledgeRepository.findAll()).hasSize(modelAssessmentKnowledgeCount);
}
Also used : ModelingExercise(de.tum.in.www1.artemis.domain.modeling.ModelingExercise) Course(de.tum.in.www1.artemis.domain.Course) WithMockUser(org.springframework.security.test.context.support.WithMockUser) Test(org.junit.jupiter.api.Test)

Example 40 with ModelingExercise

use of de.tum.in.www1.artemis.domain.modeling.ModelingExercise in project ArTEMiS by ls1intum.

the class AssessmentKnowledgeIntegrationTest method testReuseModelAssessmentKnowledgeIfExerciseIsImported.

/**
 * Tests that ModelAssessmentKnowledge is reused when we import an exercise
 *
 * @throws Exception might be thrown from Network Call to Artemis API
 */
@Test
@WithMockUser(username = "instructor1", roles = "INSTRUCTOR")
public void testReuseModelAssessmentKnowledgeIfExerciseIsImported() throws Exception {
    final Course course = database.addCourseWithOneReleasedModelExerciseWithKnowledge();
    ModelingExercise modelingExercise = modelingExerciseRepository.findByCourseIdWithCategories(course.getId()).get(0);
    int exerciseCount = modelingExerciseRepository.findAll().size();
    int modelAssessmentKnowledgeCount = modelAssessmentKnowledgeRepository.findAll().size();
    request.postWithResponseBody("/api/modeling-exercises/import/" + modelingExercise.getId(), modelingExercise, ModelingExercise.class, HttpStatus.CREATED);
    assertThat(modelAssessmentKnowledgeRepository.findAll()).hasSize(modelAssessmentKnowledgeCount);
    assertThat(modelingExerciseRepository.findAll()).hasSize(exerciseCount + 1);
}
Also used : ModelingExercise(de.tum.in.www1.artemis.domain.modeling.ModelingExercise) Course(de.tum.in.www1.artemis.domain.Course) WithMockUser(org.springframework.security.test.context.support.WithMockUser) Test(org.junit.jupiter.api.Test)

Aggregations

ModelingExercise (de.tum.in.www1.artemis.domain.modeling.ModelingExercise)196 WithMockUser (org.springframework.security.test.context.support.WithMockUser)132 Test (org.junit.jupiter.api.Test)126 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)96 ModelingSubmission (de.tum.in.www1.artemis.domain.modeling.ModelingSubmission)72 ModelingPlagiarismResult (de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingPlagiarismResult)28 ExerciseGroup (de.tum.in.www1.artemis.domain.exam.ExerciseGroup)26 StudentParticipation (de.tum.in.www1.artemis.domain.participation.StudentParticipation)20 AbstractSpringIntegrationBambooBitbucketJiraTest (de.tum.in.www1.artemis.AbstractSpringIntegrationBambooBitbucketJiraTest)16 TextPlagiarismResult (de.tum.in.www1.artemis.domain.plagiarism.text.TextPlagiarismResult)16 BeforeEach (org.junit.jupiter.api.BeforeEach)16 Course (de.tum.in.www1.artemis.domain.Course)14 PreAuthorize (org.springframework.security.access.prepost.PreAuthorize)14 ZonedDateTime (java.time.ZonedDateTime)12 Exam (de.tum.in.www1.artemis.domain.exam.Exam)10 QuizExercise (de.tum.in.www1.artemis.domain.quiz.QuizExercise)10 TeamAssignmentPayload (de.tum.in.www1.artemis.web.websocket.dto.TeamAssignmentPayload)9 JsonParser.parseString (com.google.gson.JsonParser.parseString)8 StudentExam (de.tum.in.www1.artemis.domain.exam.StudentExam)8 ModelCluster (de.tum.in.www1.artemis.domain.modeling.ModelCluster)8