Search in sources :

Example 96 with ModelingSubmission

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

the class ModelingSubmissionResource method createModelingSubmission.

/**
 * POST  /modeling-submissions : Create a new modelingSubmission.
 *
 * @param modelingSubmission the modelingSubmission to create
 * @return the ResponseEntity with status 201 (Created) and with body the new modelingSubmission, or with status 400 (Bad Request) if the modelingSubmission has already an ID
 * @throws URISyntaxException if the Location URI syntax is incorrect
 */
@PostMapping("/modeling-submissions")
@Timed
public ResponseEntity<ModelingSubmission> createModelingSubmission(@RequestBody ModelingSubmission modelingSubmission) throws URISyntaxException {
    log.debug("REST request to save ModelingSubmission : {}", modelingSubmission);
    if (modelingSubmission.getId() != null) {
        return ResponseEntity.badRequest().headers(HeaderUtil.createFailureAlert(ENTITY_NAME, "idexists", "A new modelingSubmission cannot already have an ID")).body(null);
    }
    ModelingSubmission result = modelingSubmissionRepository.save(modelingSubmission);
    return ResponseEntity.created(new URI("/api/modeling-submissions/" + result.getId())).headers(HeaderUtil.createEntityCreationAlert(ENTITY_NAME, result.getId().toString())).body(result);
}
Also used : ModelingSubmission(de.tum.in.www1.artemis.domain.ModelingSubmission) URI(java.net.URI) Timed(com.codahale.metrics.annotation.Timed)

Example 97 with ModelingSubmission

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

the class ModelingSubmissionResourceIntTest method equalsVerifier.

@Test
@Transactional
public void equalsVerifier() throws Exception {
    TestUtil.equalsVerifier(ModelingSubmission.class);
    ModelingSubmission modelingSubmission1 = new ModelingSubmission();
    modelingSubmission1.setId(1L);
    ModelingSubmission modelingSubmission2 = new ModelingSubmission();
    modelingSubmission2.setId(modelingSubmission1.getId());
    assertThat(modelingSubmission1).isEqualTo(modelingSubmission2);
    modelingSubmission2.setId(2L);
    assertThat(modelingSubmission1).isNotEqualTo(modelingSubmission2);
    modelingSubmission1.setId(null);
    assertThat(modelingSubmission1).isNotEqualTo(modelingSubmission2);
}
Also used : ModelingSubmission(de.tum.in.www1.artemis.domain.ModelingSubmission) Test(org.junit.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest) Transactional(org.springframework.transaction.annotation.Transactional)

Example 98 with ModelingSubmission

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

the class ModelingSubmissionResourceIntTest method createModelingSubmission.

@Test
@Transactional
public void createModelingSubmission() throws Exception {
    int databaseSizeBeforeCreate = modelingSubmissionRepository.findAll().size();
    // Create the ModelingSubmission
    restModelingSubmissionMockMvc.perform(post("/api/modeling-submissions").contentType(TestUtil.APPLICATION_JSON_UTF8).content(TestUtil.convertObjectToJsonBytes(modelingSubmission))).andExpect(status().isCreated());
    // Validate the ModelingSubmission in the database
    List<ModelingSubmission> modelingSubmissionList = modelingSubmissionRepository.findAll();
    assertThat(modelingSubmissionList).hasSize(databaseSizeBeforeCreate + 1);
    ModelingSubmission testModelingSubmission = modelingSubmissionList.get(modelingSubmissionList.size() - 1);
    assertThat(testModelingSubmission.getSubmissionPath()).isEqualTo(DEFAULT_SUBMISSION_PATH);
}
Also used : ModelingSubmission(de.tum.in.www1.artemis.domain.ModelingSubmission) Test(org.junit.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest) Transactional(org.springframework.transaction.annotation.Transactional)

Example 99 with ModelingSubmission

use of de.tum.in.www1.artemis.domain.modeling.ModelingSubmission 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, Map)}
 *
 * @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
 * @param gradingInstructionCopyTracker  The mapping from original GradingInstruction Ids to new GradingInstruction instances.
 * @return The cloned set of example submissions
 */
Set<ExampleSubmission> copyExampleSubmission(Exercise templateExercise, Exercise newExercise, Map<Long, GradingInstruction> gradingInstructionCopyTracker) {
    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, gradingInstructionCopyTracker);
        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 100 with ModelingSubmission

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

the class ModelingExerciseImportService method copySubmission.

/**
 * This helper function does a hard copy of the {@code originalSubmission} and stores the values in {@code newSubmission}.
 * To copy the submission results this function calls {@link ExerciseImportService#copyExampleResult(Result, Submission, Map)} respectively.
 *
 * @param originalSubmission  The original submission to be copied.
 * @param gradingInstructionCopyTracker  The mapping from original GradingInstruction Ids to new GradingInstruction instances.
 * @return The cloned submission
 */
Submission copySubmission(Submission originalSubmission, Map<Long, GradingInstruction> gradingInstructionCopyTracker) {
    ModelingSubmission newSubmission = new ModelingSubmission();
    if (originalSubmission != null) {
        log.debug("Copying the Submission to new ExampleSubmission: {}", newSubmission);
        newSubmission.setExampleSubmission(true);
        newSubmission.setSubmissionDate(originalSubmission.getSubmissionDate());
        newSubmission.setType(originalSubmission.getType());
        newSubmission.setParticipation(originalSubmission.getParticipation());
        newSubmission.setExplanationText(((ModelingSubmission) originalSubmission).getExplanationText());
        newSubmission.setModel(((ModelingSubmission) originalSubmission).getModel());
        newSubmission = submissionRepository.saveAndFlush(newSubmission);
        if (originalSubmission.getLatestResult() != null) {
            newSubmission.addResult(copyExampleResult(originalSubmission.getLatestResult(), newSubmission, gradingInstructionCopyTracker));
        }
        newSubmission = submissionRepository.saveAndFlush(newSubmission);
    }
    return newSubmission;
}
Also used : ModelingSubmission(de.tum.in.www1.artemis.domain.modeling.ModelingSubmission)

Aggregations

ModelingSubmission (de.tum.in.www1.artemis.domain.modeling.ModelingSubmission)160 Test (org.junit.jupiter.api.Test)108 WithMockUser (org.springframework.security.test.context.support.WithMockUser)106 ModelingExercise (de.tum.in.www1.artemis.domain.modeling.ModelingExercise)36 StudentParticipation (de.tum.in.www1.artemis.domain.participation.StudentParticipation)22 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)20 AbstractSpringIntegrationBambooBitbucketJiraTest (de.tum.in.www1.artemis.AbstractSpringIntegrationBambooBitbucketJiraTest)16 ModelingPlagiarismResult (de.tum.in.www1.artemis.domain.plagiarism.modeling.ModelingPlagiarismResult)16 TextPlagiarismResult (de.tum.in.www1.artemis.domain.plagiarism.text.TextPlagiarismResult)12 JsonParser.parseString (com.google.gson.JsonParser.parseString)8 ModelCluster (de.tum.in.www1.artemis.domain.modeling.ModelCluster)8 ModelingSubmission (de.tum.in.www1.artemis.domain.ModelingSubmission)6 Result (de.tum.in.www1.artemis.domain.Result)6 ModelElement (de.tum.in.www1.artemis.domain.modeling.ModelElement)6 ModelClusterFactory (de.tum.in.www1.artemis.service.compass.controller.ModelClusterFactory)6 StudentExam (de.tum.in.www1.artemis.domain.exam.StudentExam)4 ExerciseHint (de.tum.in.www1.artemis.domain.hestia.ExerciseHint)4 Participation (de.tum.in.www1.artemis.domain.participation.Participation)4 PlagiarismComparison (de.tum.in.www1.artemis.domain.plagiarism.PlagiarismComparison)4 PlagiarismSubmission (de.tum.in.www1.artemis.domain.plagiarism.PlagiarismSubmission)4