Skip to content

Commit

Permalink
add AbstractAtlasIntegrationTest
Browse files Browse the repository at this point in the history
  • Loading branch information
MaximilianAnzinger committed Sep 21, 2024
1 parent c96f537 commit 591feae
Show file tree
Hide file tree
Showing 8 changed files with 176 additions and 258 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
package de.tum.cit.aet.artemis.atlas;

import org.springframework.beans.factory.annotation.Autowired;

import de.tum.cit.aet.artemis.assessment.repository.GradingCriterionRepository;
import de.tum.cit.aet.artemis.assessment.util.StudentScoreUtilService;
import de.tum.cit.aet.artemis.atlas.competency.util.CompetencyProgressUtilService;
import de.tum.cit.aet.artemis.atlas.competency.util.CompetencyUtilService;
import de.tum.cit.aet.artemis.atlas.competency.util.PrerequisiteUtilService;
import de.tum.cit.aet.artemis.atlas.competency.util.StandardizedCompetencyUtilService;
import de.tum.cit.aet.artemis.atlas.learningpath.util.LearningPathUtilService;
import de.tum.cit.aet.artemis.atlas.repository.CompetencyJolRepository;
import de.tum.cit.aet.artemis.atlas.repository.CompetencyRelationRepository;
import de.tum.cit.aet.artemis.atlas.repository.CompetencyRepository;
import de.tum.cit.aet.artemis.atlas.repository.CourseCompetencyRepository;
import de.tum.cit.aet.artemis.atlas.repository.KnowledgeAreaRepository;
import de.tum.cit.aet.artemis.atlas.repository.PrerequisiteRepository;
import de.tum.cit.aet.artemis.atlas.repository.ScienceSettingRepository;
import de.tum.cit.aet.artemis.atlas.repository.SourceRepository;
import de.tum.cit.aet.artemis.atlas.repository.StandardizedCompetencyRepository;
import de.tum.cit.aet.artemis.atlas.service.competency.CompetencyProgressService;
import de.tum.cit.aet.artemis.atlas.test_repository.CompetencyProgressTestRepository;
import de.tum.cit.aet.artemis.atlas.test_repository.LearningPathTestRepository;
import de.tum.cit.aet.artemis.atlas.test_repository.ScienceEventTestRepository;
import de.tum.cit.aet.artemis.core.service.feature.FeatureToggleService;
import de.tum.cit.aet.artemis.core.util.PageableSearchUtilService;
import de.tum.cit.aet.artemis.exercise.participation.util.ParticipationUtilService;
import de.tum.cit.aet.artemis.exercise.repository.SubmissionRepository;
import de.tum.cit.aet.artemis.exercise.service.ParticipationService;
import de.tum.cit.aet.artemis.exercise.team.TeamUtilService;
import de.tum.cit.aet.artemis.lecture.repository.AttachmentUnitRepository;
import de.tum.cit.aet.artemis.lecture.repository.ExerciseUnitRepository;
import de.tum.cit.aet.artemis.lecture.repository.LectureRepository;
import de.tum.cit.aet.artemis.lecture.repository.LectureUnitRepository;
import de.tum.cit.aet.artemis.lecture.repository.TextUnitRepository;
import de.tum.cit.aet.artemis.lecture.service.LectureUnitService;
import de.tum.cit.aet.artemis.lecture.util.LectureUtilService;
import de.tum.cit.aet.artemis.programming.repository.ProgrammingExerciseBuildConfigRepository;
import de.tum.cit.aet.artemis.programming.repository.ProgrammingExerciseRepository;
import de.tum.cit.aet.artemis.shared.base.AbstractSpringIntegrationIndependentTest;
import de.tum.cit.aet.artemis.text.util.TextExerciseUtilService;

public abstract class AbstractAtlasIntegrationTest extends AbstractSpringIntegrationIndependentTest {

// Repositories
@Autowired
protected CompetencyRepository competencyRepository;

@Autowired
protected CourseCompetencyRepository courseCompetencyRepository;

@Autowired
protected CompetencyRelationRepository competencyRelationRepository;

@Autowired
protected CompetencyProgressTestRepository competencyProgressRepository;

@Autowired
protected KnowledgeAreaRepository knowledgeAreaRepository;

@Autowired
protected StandardizedCompetencyRepository standardizedCompetencyRepository;

@Autowired
protected SourceRepository sourceRepository;

@Autowired
protected LearningPathTestRepository learningPathRepository;

@Autowired
protected ScienceSettingRepository scienceSettingRepository;

@Autowired
protected ScienceEventTestRepository scienceEventRepository;

@Autowired
protected PrerequisiteRepository prerequisiteRepository;

@Autowired
protected CompetencyJolRepository competencyJolRepository;

// External Repositories
@Autowired
protected LectureRepository lectureRepository;

@Autowired
protected LectureUnitRepository lectureUnitRepository;

@Autowired
protected GradingCriterionRepository gradingCriterionRepository;

@Autowired
protected TextUnitRepository textUnitRepository;

@Autowired
protected AttachmentUnitRepository attachmentUnitRepository;

@Autowired
protected ExerciseUnitRepository exerciseUnitRepository;

@Autowired
protected SubmissionRepository submissionRepository;

@Autowired
protected ProgrammingExerciseRepository programmingExerciseRepository;

@Autowired
protected ProgrammingExerciseBuildConfigRepository programmingExerciseBuildConfigRepository;

// Services

@Autowired
protected CompetencyProgressService competencyProgressService;

@Autowired
protected FeatureToggleService featureToggleService;

// External Services
@Autowired
protected LectureUnitService lectureUnitService;

@Autowired
protected ParticipationService participationService;

// Util Services
@Autowired
protected CompetencyProgressUtilService competencyProgressUtilService;

@Autowired
protected CompetencyUtilService competencyUtilService;

@Autowired
protected PrerequisiteUtilService prerequisiteUtilService;

@Autowired
protected StandardizedCompetencyUtilService standardizedCompetencyUtilService;

@Autowired
protected LearningPathUtilService learningPathUtilService;

// External Util Services
@Autowired
protected PageableSearchUtilService pageableSearchUtilService;

@Autowired
protected TextExerciseUtilService textExerciseUtilService;

@Autowired
protected LectureUtilService lectureUtilService;

@Autowired
protected StudentScoreUtilService studentScoreUtilService;

@Autowired
protected ParticipationUtilService participationUtilService;

@Autowired
protected TeamUtilService teamUtilService;
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,16 @@
import java.util.function.Function;
import java.util.stream.Collectors;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;

import de.tum.cit.aet.artemis.atlas.competency.util.CompetencyProgressUtilService;
import de.tum.cit.aet.artemis.atlas.competency.util.PrerequisiteUtilService;
import de.tum.cit.aet.artemis.atlas.competency.util.StandardizedCompetencyUtilService;
import de.tum.cit.aet.artemis.atlas.AbstractAtlasIntegrationTest;
import de.tum.cit.aet.artemis.atlas.domain.competency.CompetencyRelation;
import de.tum.cit.aet.artemis.atlas.domain.competency.CompetencyTaxonomy;
import de.tum.cit.aet.artemis.atlas.domain.competency.CourseCompetency;
import de.tum.cit.aet.artemis.atlas.domain.competency.Prerequisite;
import de.tum.cit.aet.artemis.atlas.domain.competency.RelationType;
import de.tum.cit.aet.artemis.atlas.dto.CompetencyImportResponseDTO;
import de.tum.cit.aet.artemis.atlas.dto.CompetencyWithTailRelationDTO;
import de.tum.cit.aet.artemis.atlas.repository.CompetencyRelationRepository;
import de.tum.cit.aet.artemis.atlas.repository.CourseCompetencyRepository;
import de.tum.cit.aet.artemis.atlas.repository.PrerequisiteRepository;
import de.tum.cit.aet.artemis.core.domain.Course;
import de.tum.cit.aet.artemis.core.domain.DomainObject;
import de.tum.cit.aet.artemis.core.domain.User;
Expand All @@ -39,53 +33,10 @@
import de.tum.cit.aet.artemis.lecture.domain.Lecture;
import de.tum.cit.aet.artemis.lecture.domain.LectureUnit;
import de.tum.cit.aet.artemis.lecture.domain.TextUnit;
import de.tum.cit.aet.artemis.lecture.repository.AttachmentUnitRepository;
import de.tum.cit.aet.artemis.lecture.repository.ExerciseUnitRepository;
import de.tum.cit.aet.artemis.lecture.repository.LectureRepository;
import de.tum.cit.aet.artemis.lecture.repository.LectureUnitRepository;
import de.tum.cit.aet.artemis.lecture.repository.TextUnitRepository;
import de.tum.cit.aet.artemis.lecture.util.LectureUtilService;
import de.tum.cit.aet.artemis.shared.base.AbstractSpringIntegrationLocalCILocalVCTest;
import de.tum.cit.aet.artemis.text.domain.TextExercise;
import de.tum.cit.aet.artemis.text.util.TextExerciseFactory;

abstract class AbstractCompetencyPrerequisiteIntegrationTest extends AbstractSpringIntegrationLocalCILocalVCTest {

@Autowired
protected LectureRepository lectureRepository;

@Autowired
protected TextUnitRepository textUnitRepository;

@Autowired
protected AttachmentUnitRepository attachmentUnitRepository;

@Autowired
protected ExerciseUnitRepository exerciseUnitRepository;

@Autowired
protected CompetencyRelationRepository competencyRelationRepository;

@Autowired
protected PrerequisiteRepository prerequisiteRepository;

@Autowired
protected LectureUnitRepository lectureUnitRepository;

@Autowired
protected PrerequisiteUtilService prerequisiteUtilService;

@Autowired
protected CompetencyProgressUtilService competencyProgressUtilService;

@Autowired
protected LectureUtilService lectureUtilService;

@Autowired
protected StandardizedCompetencyUtilService standardizedCompetencyUtilService;

@Autowired
protected CourseCompetencyRepository courseCompetencyRepository;
abstract class AbstractCompetencyPrerequisiteIntegrationTest extends AbstractAtlasIntegrationTest {

protected Course course;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,32 +9,19 @@
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.security.test.context.support.WithMockUser;

import de.tum.cit.aet.artemis.atlas.competency.util.CompetencyProgressUtilService;
import de.tum.cit.aet.artemis.atlas.competency.util.CompetencyUtilService;
import de.tum.cit.aet.artemis.atlas.AbstractAtlasIntegrationTest;
import de.tum.cit.aet.artemis.atlas.domain.competency.Competency;
import de.tum.cit.aet.artemis.atlas.domain.competency.CompetencyProgress;
import de.tum.cit.aet.artemis.atlas.dto.CompetencyJolPairDTO;
import de.tum.cit.aet.artemis.atlas.repository.CompetencyJolRepository;
import de.tum.cit.aet.artemis.core.domain.User;
import de.tum.cit.aet.artemis.shared.base.AbstractSpringIntegrationIndependentTest;

class CompetencyJolIntegrationTest extends AbstractSpringIntegrationIndependentTest {
class CompetencyJolIntegrationTest extends AbstractAtlasIntegrationTest {

private static final String TEST_PREFIX = "competencyjolintegrationtest";

@Autowired
private CompetencyUtilService competencyUtilService;

@Autowired
private CompetencyProgressUtilService competencyProgressUtilService;

@Autowired
private CompetencyJolRepository competencyJOLRepository;

private final Competency[] competency = new Competency[3];

private CompetencyProgress competencyProgress;
Expand Down Expand Up @@ -63,7 +50,7 @@ void setup() {

@AfterEach
void tearDown() {
competencyJOLRepository.deleteAll();
competencyJolRepository.deleteAll();
}

@Nested
Expand Down Expand Up @@ -100,7 +87,7 @@ void shouldReturnForbiddenForStudentNotInCourse() throws Exception {
void shouldCreateJOL() throws Exception {
short jolValue = 3;
sendRequest(competency[0].getId(), jolValue, HttpStatus.OK);
final var jol = competencyJOLRepository.findLatestByCompetencyIdAndUserId(competency[0].getId(), student.getId());
final var jol = competencyJolRepository.findLatestByCompetencyIdAndUserId(competency[0].getId(), student.getId());
assertThat(jol).isPresent();
assertThat(jol.get().getValue()).isEqualTo(jolValue);
assertThat(jol.get().getCompetencyConfidence()).isEqualTo(competencyProgress.getConfidence());
Expand All @@ -113,7 +100,7 @@ void shouldUpdateJOL() throws Exception {
competencyUtilService.createJol(competency[0], student, (short) 123, ZonedDateTime.now().minusDays(1), 0.0, 0.0);
short jolValue = 3;
sendRequest(competency[0].getId(), jolValue, HttpStatus.OK);
final var jol = competencyJOLRepository.findLatestByCompetencyIdAndUserId(competency[0].getId(), student.getId());
final var jol = competencyJolRepository.findLatestByCompetencyIdAndUserId(competency[0].getId(), student.getId());
assertThat(jol).isPresent();
assertThat(jol.get().getValue()).isEqualTo(jolValue);
assertThat(jol.get().getCompetencyConfidence()).isEqualTo(competencyProgress.getConfidence());
Expand Down
Loading

0 comments on commit 591feae

Please sign in to comment.