Search in sources :

Example 76 with ModelingExercise

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

the class AssessmentServiceTest method createModelingExerciseSubmissionAndCalculateScore.

@Test
@WithMockUser(username = "instructor1", roles = "INSTRUCTOR")
public void createModelingExerciseSubmissionAndCalculateScore() {
    ModelingExercise exercise = createModelingExerciseWithSGI(course1);
    Submission submissionWithoutResult = new ModelingSubmission();
    submissionWithoutResult.setSubmissionDate(pastTimestamp.plusMinutes(3L));
    submissionWithoutResult = database.addSubmission(exercise, submissionWithoutResult, "student1");
    database.addSubmission((StudentParticipation) submissionWithoutResult.getParticipation(), submissionWithoutResult);
    List<Feedback> feedbacks = createFeedback(exercise);
    var result = new Result();
    result.setSubmission(submissionWithoutResult);
    result.setFeedbacks(feedbacks);
    result.setParticipation(submissionWithoutResult.getParticipation());
    submissionWithoutResult.addResult(result);
    resultRepository.submitResult(result, exercise, exerciseDateService.getDueDate(result.getParticipation()));
    resultRepository.save(result);
    assertThat(result.getResultString()).isEqualTo("6 of 7 points");
}
Also used : ModelingSubmission(de.tum.in.www1.artemis.domain.modeling.ModelingSubmission) ModelingSubmission(de.tum.in.www1.artemis.domain.modeling.ModelingSubmission) ModelingExercise(de.tum.in.www1.artemis.domain.modeling.ModelingExercise) WithMockUser(org.springframework.security.test.context.support.WithMockUser) AbstractSpringIntegrationBambooBitbucketJiraTest(de.tum.in.www1.artemis.AbstractSpringIntegrationBambooBitbucketJiraTest) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 77 with ModelingExercise

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

the class ResultServiceIntegrationTest method createExampleResult.

@Test
@WithMockUser(username = "instructor1", roles = "INSTRUCTOR")
public void createExampleResult() throws Exception {
    var modelingSubmission = database.addSubmission(modelingExercise, new ModelingSubmission(), "student1");
    var exampleSubmission = ModelFactory.generateExampleSubmission(modelingSubmission, modelingExercise, false);
    exampleSubmission = database.addExampleSubmission(exampleSubmission);
    modelingSubmission.setExampleSubmission(true);
    submissionRepository.save(modelingSubmission);
    request.postWithResponseBody("/api/exercises/" + modelingExercise.getId() + "/example-submissions/" + modelingSubmission.getId() + "/example-results", exampleSubmission, Result.class, HttpStatus.CREATED);
}
Also used : ModelingSubmission(de.tum.in.www1.artemis.domain.modeling.ModelingSubmission) WithMockUser(org.springframework.security.test.context.support.WithMockUser) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 78 with ModelingExercise

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

the class ResultServiceIntegrationTest method createExampleResult_notExampleSubmission.

@Test
@WithMockUser(username = "instructor1", roles = "INSTRUCTOR")
public void createExampleResult_notExampleSubmission() throws Exception {
    var modelingSubmission = database.addSubmission(modelingExercise, new ModelingSubmission(), "student1");
    var exampleSubmission = ModelFactory.generateExampleSubmission(modelingSubmission, modelingExercise, false);
    exampleSubmission = database.addExampleSubmission(exampleSubmission);
    modelingSubmission.setExampleSubmission(false);
    submissionRepository.save(modelingSubmission);
    request.postWithResponseBody("/api/exercises/" + modelingExercise.getId() + "/example-submissions/" + modelingSubmission.getId() + "/example-results", exampleSubmission, Result.class, HttpStatus.INTERNAL_SERVER_ERROR);
}
Also used : ModelingSubmission(de.tum.in.www1.artemis.domain.modeling.ModelingSubmission) WithMockUser(org.springframework.security.test.context.support.WithMockUser) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 79 with ModelingExercise

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

the class ResultServiceIntegrationTest method createExampleResult_wrongExerciseId.

@Test
@WithMockUser(username = "instructor1", roles = "INSTRUCTOR")
public void createExampleResult_wrongExerciseId() throws Exception {
    var modelingSubmission = database.addSubmission(modelingExercise, new ModelingSubmission(), "student1");
    var exampleSubmission = ModelFactory.generateExampleSubmission(modelingSubmission, modelingExercise, false);
    exampleSubmission = database.addExampleSubmission(exampleSubmission);
    modelingSubmission.setExampleSubmission(true);
    submissionRepository.save(modelingSubmission);
    long randomId = 1874;
    request.postWithResponseBody("/api/exercises/" + randomId + "/example-submissions/" + modelingSubmission.getId() + "/example-results", exampleSubmission, Result.class, HttpStatus.BAD_REQUEST);
}
Also used : ModelingSubmission(de.tum.in.www1.artemis.domain.modeling.ModelingSubmission) WithMockUser(org.springframework.security.test.context.support.WithMockUser) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 80 with ModelingExercise

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

the class CompassService method build.

/**
 * Builds and saves the clusters
 * Does not build clusters if there is already a cluster for given exercise
 *
 * @param modelingExercise the exercise to build clusters for
 */
public void build(ModelingExercise modelingExercise) {
    long start = System.nanoTime();
    if (!isSupported(modelingExercise)) {
        return;
    }
    List<ModelCluster> currentClusters = modelClusterRepository.findAllByExerciseIdWithEagerElements(modelingExercise.getId());
    if (!currentClusters.isEmpty()) {
        log.info("Clusters have already been built. First delete existing clusters and then rebuild them!");
        // Do not build submissions if this process has already been done before
        return;
    }
    List<ModelingSubmission> submissions = modelingSubmissionRepository.findSubmittedByExerciseIdWithEagerResultsAndFeedback(modelingExercise.getId());
    log.info("ModelCluster: start building clusters of {} submissions for modeling exercise {}", submissions.size(), modelingExercise.getId());
    ModelClusterFactory clusterFactory = new ModelClusterFactory();
    List<ModelCluster> modelClusters = clusterFactory.buildClusters(submissions, modelingExercise);
    log.info("ModelClusterTimeLog: building clusters of {} submissions for modeling exercise {} done in {}", submissions.size(), modelingExercise.getId(), TimeLogUtil.formatDurationFrom(start));
    modelClusterRepository.saveAll(modelClusters);
    modelElementRepository.saveAll(modelClusters.stream().flatMap(modelCluster -> modelCluster.getModelElements().stream()).collect(Collectors.toList()));
    log.info("ModelClusterTimeLog: building and saving clusters of {} submissions for exercise {} done in {}", submissions.size(), modelingExercise.getId(), TimeLogUtil.formatDurationFrom(start));
}
Also used : ModelClusterFactory(de.tum.in.www1.artemis.service.compass.controller.ModelClusterFactory) ModelingSubmission(de.tum.in.www1.artemis.domain.modeling.ModelingSubmission) ModelCluster(de.tum.in.www1.artemis.domain.modeling.ModelCluster)

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