Search in sources :

Example 76 with ProgrammingExerciseStudentParticipation

use of de.tum.in.www1.artemis.domain.participation.ProgrammingExerciseStudentParticipation in project Artemis by ls1intum.

the class ResultServiceTest method testGetFeedbacksForResultAsStudent_shouldFilterInCourseAfterAssessmentDueDateWithAutomaticResult.

@Test
@WithMockUser(username = "student1", roles = "STUDENT")
public void testGetFeedbacksForResultAsStudent_shouldFilterInCourseAfterAssessmentDueDateWithAutomaticResult() {
    programmingExercise.setDueDate(ZonedDateTime.now().minusDays(4));
    programmingExercise.setAssessmentDueDate(ZonedDateTime.now().minusDays(2));
    programmingExerciseRepository.save(programmingExercise);
    Result result = database.addResultToParticipation(AssessmentType.AUTOMATIC, null, programmingExerciseStudentParticipation);
    result = database.addVariousVisibilityFeedbackToResults(result);
    result = database.addFeedbackToResult(ModelFactory.createPositiveFeedback(FeedbackType.MANUAL), result);
    List<Feedback> expectedFeedbacks = result.getFeedbacks().stream().filter(feedback -> !feedback.isInvisible()).collect(Collectors.toList());
    assertThat(resultService.getFeedbacksForResult(result)).isEqualTo(expectedFeedbacks);
}
Also used : BeforeEach(org.junit.jupiter.api.BeforeEach) Feedback(de.tum.in.www1.artemis.domain.Feedback) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) ZonedDateTime(java.time.ZonedDateTime) Course(de.tum.in.www1.artemis.domain.Course) Autowired(org.springframework.beans.factory.annotation.Autowired) EnumSource(org.junit.jupiter.params.provider.EnumSource) ProgrammingExerciseStudentParticipation(de.tum.in.www1.artemis.domain.participation.ProgrammingExerciseStudentParticipation) ModelFactory(de.tum.in.www1.artemis.util.ModelFactory) AbstractSpringIntegrationBambooBitbucketJiraTest(de.tum.in.www1.artemis.AbstractSpringIntegrationBambooBitbucketJiraTest) Exam(de.tum.in.www1.artemis.domain.exam.Exam) ExamRepository(de.tum.in.www1.artemis.repository.ExamRepository) ProgrammingExercise(de.tum.in.www1.artemis.domain.ProgrammingExercise) AssessmentType(de.tum.in.www1.artemis.domain.enumeration.AssessmentType) Collectors(java.util.stream.Collectors) Test(org.junit.jupiter.api.Test) ProgrammingExerciseRepository(de.tum.in.www1.artemis.repository.ProgrammingExerciseRepository) Result(de.tum.in.www1.artemis.domain.Result) List(java.util.List) AfterEach(org.junit.jupiter.api.AfterEach) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) ProgrammingExerciseStudentParticipationRepository(de.tum.in.www1.artemis.repository.ProgrammingExerciseStudentParticipationRepository) WithMockUser(org.springframework.security.test.context.support.WithMockUser) StudentParticipation(de.tum.in.www1.artemis.domain.participation.StudentParticipation) FeedbackType(de.tum.in.www1.artemis.domain.enumeration.FeedbackType) Feedback(de.tum.in.www1.artemis.domain.Feedback) Result(de.tum.in.www1.artemis.domain.Result) 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 ProgrammingExerciseStudentParticipation

use of de.tum.in.www1.artemis.domain.participation.ProgrammingExerciseStudentParticipation in project Artemis by ls1intum.

the class ResultServiceTest method testGetFeedbacksForResultAsStudentShouldOnlyFilterAutomaticResultBeforeLastDueDate.

@ParameterizedTest(name = "{displayName} [{index}] {argumentsWithNames}")
@EnumSource(AssessmentType.class)
@WithMockUser(username = "student1", roles = "STUDENT")
public void testGetFeedbacksForResultAsStudentShouldOnlyFilterAutomaticResultBeforeLastDueDate(AssessmentType assessmentType) {
    programmingExercise.setDueDate(ZonedDateTime.now().minusHours(2));
    programmingExercise.setAssessmentDueDate(null);
    programmingExercise = programmingExerciseRepository.save(programmingExercise);
    final var participation2 = database.addStudentParticipationForProgrammingExercise(programmingExercise, "student2");
    participation2.setIndividualDueDate(ZonedDateTime.now().plusDays(2));
    participationRepository.save(participation2);
    Result result = database.addResultToParticipation(assessmentType, null, programmingExerciseStudentParticipation);
    result = database.addVariousVisibilityFeedbackToResults(result);
    result = database.addFeedbackToResult(ModelFactory.createPositiveFeedback(FeedbackType.MANUAL), result);
    List<Feedback> expectedFeedbacks;
    if (AssessmentType.AUTOMATIC == assessmentType) {
        expectedFeedbacks = result.getFeedbacks().stream().filter(feedback -> !feedback.isInvisible() && !feedback.isAfterDueDate()).collect(Collectors.toList());
        assertThat(expectedFeedbacks).hasSize(2);
    } else {
        expectedFeedbacks = result.getFeedbacks().stream().filter(feedback -> !feedback.isInvisible()).collect(Collectors.toList());
        assertThat(expectedFeedbacks).hasSize(3);
    }
    assertThat(resultService.getFeedbacksForResult(result)).isEqualTo(expectedFeedbacks);
}
Also used : Feedback(de.tum.in.www1.artemis.domain.Feedback) Result(de.tum.in.www1.artemis.domain.Result) WithMockUser(org.springframework.security.test.context.support.WithMockUser) EnumSource(org.junit.jupiter.params.provider.EnumSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 78 with ProgrammingExerciseStudentParticipation

use of de.tum.in.www1.artemis.domain.participation.ProgrammingExerciseStudentParticipation in project Artemis by ls1intum.

the class ResultServiceTest method testGetFeedbacksForResultAsStudentShouldNotFilterAfterLatestDueDate.

@ParameterizedTest(name = "{displayName} [{index}] {argumentsWithNames}")
@EnumSource(AssessmentType.class)
@WithMockUser(username = "student1", roles = "STUDENT")
public void testGetFeedbacksForResultAsStudentShouldNotFilterAfterLatestDueDate(AssessmentType assessmentType) {
    programmingExercise.setDueDate(ZonedDateTime.now().minusHours(2));
    programmingExercise.setAssessmentDueDate(null);
    programmingExercise = programmingExerciseRepository.save(programmingExercise);
    final var participation2 = database.addStudentParticipationForProgrammingExercise(programmingExercise, "student2");
    participation2.setIndividualDueDate(ZonedDateTime.now().minusHours(1));
    participationRepository.save(participation2);
    Result result = database.addResultToParticipation(assessmentType, null, programmingExerciseStudentParticipation);
    result = database.addVariousVisibilityFeedbackToResults(result);
    result = database.addFeedbackToResult(ModelFactory.createPositiveFeedback(FeedbackType.MANUAL), result);
    List<Feedback> expectedFeedbacks;
    expectedFeedbacks = result.getFeedbacks().stream().filter(feedback -> !feedback.isInvisible()).collect(Collectors.toList());
    assertThat(expectedFeedbacks).hasSize(3);
    assertThat(resultService.getFeedbacksForResult(result)).isEqualTo(expectedFeedbacks);
}
Also used : Feedback(de.tum.in.www1.artemis.domain.Feedback) Result(de.tum.in.www1.artemis.domain.Result) WithMockUser(org.springframework.security.test.context.support.WithMockUser) EnumSource(org.junit.jupiter.params.provider.EnumSource) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 79 with ProgrammingExerciseStudentParticipation

use of de.tum.in.www1.artemis.domain.participation.ProgrammingExerciseStudentParticipation in project Artemis by ls1intum.

the class ResultServiceTest method testGetFeedbacksForResultAsStudent_shouldFilterInCourseBeforeDueDate.

@Test
@WithMockUser(username = "student1", roles = "STUDENT")
public void testGetFeedbacksForResultAsStudent_shouldFilterInCourseBeforeDueDate() {
    programmingExercise.setDueDate(ZonedDateTime.now().plusDays(2));
    programmingExerciseRepository.save(programmingExercise);
    Result result = database.addResultToParticipation(null, null, programmingExerciseStudentParticipation);
    result = database.addVariousVisibilityFeedbackToResults(result);
    List<Feedback> expectedFeedbacks = result.getFeedbacks().stream().filter(feedback -> !feedback.isInvisible() && !feedback.isAfterDueDate()).collect(Collectors.toList());
    assertThat(resultService.getFeedbacksForResult(result)).isEqualTo(expectedFeedbacks);
}
Also used : BeforeEach(org.junit.jupiter.api.BeforeEach) Feedback(de.tum.in.www1.artemis.domain.Feedback) Assertions.assertThat(org.assertj.core.api.Assertions.assertThat) ZonedDateTime(java.time.ZonedDateTime) Course(de.tum.in.www1.artemis.domain.Course) Autowired(org.springframework.beans.factory.annotation.Autowired) EnumSource(org.junit.jupiter.params.provider.EnumSource) ProgrammingExerciseStudentParticipation(de.tum.in.www1.artemis.domain.participation.ProgrammingExerciseStudentParticipation) ModelFactory(de.tum.in.www1.artemis.util.ModelFactory) AbstractSpringIntegrationBambooBitbucketJiraTest(de.tum.in.www1.artemis.AbstractSpringIntegrationBambooBitbucketJiraTest) Exam(de.tum.in.www1.artemis.domain.exam.Exam) ExamRepository(de.tum.in.www1.artemis.repository.ExamRepository) ProgrammingExercise(de.tum.in.www1.artemis.domain.ProgrammingExercise) AssessmentType(de.tum.in.www1.artemis.domain.enumeration.AssessmentType) Collectors(java.util.stream.Collectors) Test(org.junit.jupiter.api.Test) ProgrammingExerciseRepository(de.tum.in.www1.artemis.repository.ProgrammingExerciseRepository) Result(de.tum.in.www1.artemis.domain.Result) List(java.util.List) AfterEach(org.junit.jupiter.api.AfterEach) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) ProgrammingExerciseStudentParticipationRepository(de.tum.in.www1.artemis.repository.ProgrammingExerciseStudentParticipationRepository) WithMockUser(org.springframework.security.test.context.support.WithMockUser) StudentParticipation(de.tum.in.www1.artemis.domain.participation.StudentParticipation) FeedbackType(de.tum.in.www1.artemis.domain.enumeration.FeedbackType) Feedback(de.tum.in.www1.artemis.domain.Feedback) Result(de.tum.in.www1.artemis.domain.Result) 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 80 with ProgrammingExerciseStudentParticipation

use of de.tum.in.www1.artemis.domain.participation.ProgrammingExerciseStudentParticipation in project Artemis by ls1intum.

the class UrlServiceTest method testUserIndependentRepositoryUrl.

@Test
public void testUserIndependentRepositoryUrl() {
    var solutionProgrammingExerciseParticipation = new SolutionProgrammingExerciseParticipation();
    solutionProgrammingExerciseParticipation.setRepositoryUrl(repositoryUrl1.toString());
    assertThat(solutionProgrammingExerciseParticipation.getUserIndependentRepositoryUrl()).isEqualTo("https://bitbucket.ase.in.tum.de/scm/EIST2016RME/RMEXERCISE-ab123cd");
    var templateProgrammingExerciseParticipation = new TemplateProgrammingExerciseParticipation();
    templateProgrammingExerciseParticipation.setRepositoryUrl(repositoryUrl2.toString());
    assertThat(templateProgrammingExerciseParticipation.getUserIndependentRepositoryUrl()).isEqualTo("https://repobruegge.in.tum.de/scm/EIST2016RME/RMEXERCISE-ab123cd.git");
    var studentParticipation1 = new ProgrammingExerciseStudentParticipation();
    studentParticipation1.setRepositoryUrl(repositoryUrl3.toString());
    assertThat(studentParticipation1.getUserIndependentRepositoryUrl()).isEqualTo("https://artemistest2gitlab.ase.in.tum.de/TESTADAPTER/testadapter-exercise.git");
    var studentParticipation2 = new ProgrammingExerciseStudentParticipation();
    studentParticipation2.setRepositoryUrl(repositoryUrl4.toString());
    assertThat(studentParticipation2.getUserIndependentRepositoryUrl()).isEqualTo("https://artemistest2gitlab.ase.in.tum.de/FTCSCAGRADING1/ftcscagrading1-username");
    assertThat(new ProgrammingExerciseStudentParticipation().getUserIndependentRepositoryUrl()).isNull();
    var studentParticipation3 = new ProgrammingExerciseStudentParticipation();
    studentParticipation3.setRepositoryUrl("http://localhost:8080/Assignment/rest/words/{name}/protection");
    assertThat(studentParticipation3.getUserIndependentRepositoryUrl()).isNull();
}
Also used : ProgrammingExerciseStudentParticipation(de.tum.in.www1.artemis.domain.participation.ProgrammingExerciseStudentParticipation) TemplateProgrammingExerciseParticipation(de.tum.in.www1.artemis.domain.participation.TemplateProgrammingExerciseParticipation) SolutionProgrammingExerciseParticipation(de.tum.in.www1.artemis.domain.participation.SolutionProgrammingExerciseParticipation) Test(org.junit.jupiter.api.Test) AbstractSpringIntegrationBambooBitbucketJiraTest(de.tum.in.www1.artemis.AbstractSpringIntegrationBambooBitbucketJiraTest)

Aggregations

ProgrammingExerciseStudentParticipation (de.tum.in.www1.artemis.domain.participation.ProgrammingExerciseStudentParticipation)58 StudentParticipation (de.tum.in.www1.artemis.domain.participation.StudentParticipation)26 ParameterizedTest (org.junit.jupiter.params.ParameterizedTest)24 WithMockUser (org.springframework.security.test.context.support.WithMockUser)24 ProgrammingExercise (de.tum.in.www1.artemis.domain.ProgrammingExercise)20 Test (org.junit.jupiter.api.Test)20 Result (de.tum.in.www1.artemis.domain.Result)18 BeforeEach (org.junit.jupiter.api.BeforeEach)18 AbstractSpringIntegrationBambooBitbucketJiraTest (de.tum.in.www1.artemis.AbstractSpringIntegrationBambooBitbucketJiraTest)16 ZonedDateTime (java.time.ZonedDateTime)16 EnumSource (org.junit.jupiter.params.provider.EnumSource)16 Feedback (de.tum.in.www1.artemis.domain.Feedback)14 ProgrammingExerciseRepository (de.tum.in.www1.artemis.repository.ProgrammingExerciseRepository)14 ModelFactory (de.tum.in.www1.artemis.util.ModelFactory)14 EntityNotFoundException (de.tum.in.www1.artemis.web.rest.errors.EntityNotFoundException)14 List (java.util.List)14 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)14 AfterEach (org.junit.jupiter.api.AfterEach)14 Autowired (org.springframework.beans.factory.annotation.Autowired)14 AssessmentType (de.tum.in.www1.artemis.domain.enumeration.AssessmentType)12