Skip to content

Commit

Permalink
Use abstract parent AthenaTest for tests
Browse files Browse the repository at this point in the history
  • Loading branch information
pal03377 committed Jul 16, 2023
1 parent 7f270f5 commit ad9db61
Show file tree
Hide file tree
Showing 6 changed files with 63 additions and 125 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,28 +7,20 @@
import java.util.List;
import java.util.Optional;

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.test.util.ReflectionTestUtils;

import de.tum.in.www1.artemis.AbstractSpringIntegrationBambooBitbucketJiraTest;
import de.tum.in.www1.artemis.connector.AthenaRequestMockProvider;
import de.tum.in.www1.artemis.domain.*;
import de.tum.in.www1.artemis.domain.Feedback;
import de.tum.in.www1.artemis.domain.TextBlock;
import de.tum.in.www1.artemis.domain.TextExercise;
import de.tum.in.www1.artemis.domain.TextSubmission;
import de.tum.in.www1.artemis.domain.enumeration.AssessmentType;
import de.tum.in.www1.artemis.domain.enumeration.FeedbackType;
import de.tum.in.www1.artemis.repository.TextBlockRepository;

class AthenaFeedbackSendingServiceTest extends AbstractSpringIntegrationBambooBitbucketJiraTest {

@Value("${artemis.athena.url}")
private String athenaUrl;

@Autowired
private AthenaRequestMockProvider athenaRequestMockProvider;
class AthenaFeedbackSendingServiceTest extends AthenaTest {

@Mock
private TextBlockRepository textBlockRepository;
Expand All @@ -50,37 +42,19 @@ void setUp() {

athenaRequestMockProvider.enableMockingOfRequests();

textExercise = new TextExercise();
textExercise.setAssessmentType(AssessmentType.SEMI_AUTOMATIC); // needed for feedback suggestions
textExercise.setId(1L);
textExercise.setTitle("Test Exercise");
textExercise.setMaxPoints(10.0);
textExercise = createTextExercise();

textSubmission = new TextSubmission();
textSubmission.setId(2L);
textSubmission.setText("Test - This is what the feedback references - Submission");
textSubmission = new TextSubmission(2L).text("Test - This is what the feedback references - Submission");

textBlock = new TextBlock();
textBlock.setId("4");
textBlock.setStartIndex(7);
textBlock.setEndIndex(46);
textBlock.setText("This is what the feedback references");
textBlock.setSubmission(textSubmission);
textBlock = new TextBlock().startIndex(7).endIndex(46).text("This is what the feedback references").submission(textSubmission);
textBlock.computeId();

feedback = new Feedback();
feedback = new Feedback().type(FeedbackType.MANUAL).credits(5.0).reference(textBlock.getId());
feedback.setId(3L);
feedback.setType(FeedbackType.MANUAL);
feedback.setCredits(5.0);
feedback.setReference(textBlock.getId());

when(textBlockRepository.findById(textBlock.getId())).thenReturn(Optional.of(textBlock));
}

@AfterEach
void tearDown() throws Exception {
athenaRequestMockProvider.reset();
}

@Test
void testFeedbackSending() {
athenaRequestMockProvider.mockSendFeedbackAndExpect(jsonPath("$.exercise.id").value(textExercise.getId()), jsonPath("$.submission.id").value(textSubmission.getId()),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,16 @@

import java.util.List;

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;

import de.tum.in.www1.artemis.AbstractSpringIntegrationBambooBitbucketJiraTest;
import de.tum.in.www1.artemis.connector.AthenaRequestMockProvider;
import de.tum.in.www1.artemis.domain.TextBlockRef;
import de.tum.in.www1.artemis.domain.TextExercise;
import de.tum.in.www1.artemis.domain.TextSubmission;
import de.tum.in.www1.artemis.domain.enumeration.AssessmentType;
import de.tum.in.www1.artemis.exception.NetworkingError;

class AthenaFeedbackSuggestionsServiceTest extends AbstractSpringIntegrationBambooBitbucketJiraTest {

@Autowired
private AthenaRequestMockProvider athenaRequestMockProvider;
class AthenaFeedbackSuggestionsServiceTest extends AthenaTest {

@Autowired
private AthenaFeedbackSuggestionsService athenaFeedbackSuggestionsService;
Expand All @@ -34,20 +27,8 @@ class AthenaFeedbackSuggestionsServiceTest extends AbstractSpringIntegrationBamb
void setUp() {
athenaRequestMockProvider.enableMockingOfRequests();

textExercise = new TextExercise();
textExercise.setAssessmentType(AssessmentType.SEMI_AUTOMATIC); // needed for feedback suggestions
textExercise.setId(1L);
textExercise.setTitle("Test Exercise");
textExercise.setMaxPoints(10.0);

textSubmission = new TextSubmission();
textSubmission.setId(2L);
textSubmission.setText("This is a text submission");
}

@AfterEach
void tearDown() throws Exception {
athenaRequestMockProvider.reset();
textExercise = createTextExercise();
textSubmission = new TextSubmission(2L).text("This is a text submission");
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,38 +2,20 @@

import static org.assertj.core.api.Assertions.assertThat;

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.Status;

import de.tum.in.www1.artemis.AbstractSpringIntegrationBambooBitbucketJiraTest;
import de.tum.in.www1.artemis.connector.AthenaRequestMockProvider;

class AthenaHealthIndicatorTest extends AbstractSpringIntegrationBambooBitbucketJiraTest {
class AthenaHealthIndicatorTest extends AthenaTest {

private static final String GREEN_CIRCLE = "\uD83D\uDFE2"; // unicode green circle

private static final String RED_CIRCLE = "\uD83D\uDD34"; // unicode red circle

@Autowired
private AthenaRequestMockProvider athenaRequestMockProvider;

@Autowired
private AthenaHealthIndicator athenaHealthIndicator;

@BeforeEach
void initTestCase() {
athenaRequestMockProvider.enableMockingOfRequests();
}

@AfterEach
void tearDown() throws Exception {
athenaRequestMockProvider.reset();
}

@Test
void healthUp() {
athenaRequestMockProvider.mockHealthStatusSuccess(true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,15 @@

import java.util.List;

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;

import de.tum.in.www1.artemis.AbstractSpringIntegrationBambooBitbucketJiraTest;
import de.tum.in.www1.artemis.connector.AthenaRequestMockProvider;
import de.tum.in.www1.artemis.domain.TextExercise;
import de.tum.in.www1.artemis.domain.TextSubmission;
import de.tum.in.www1.artemis.domain.enumeration.AssessmentType;

class AthenaSubmissionSelectionServiceTest extends AbstractSpringIntegrationBambooBitbucketJiraTest {

@Autowired
private AthenaRequestMockProvider athenaRequestMockProvider;
class AthenaSubmissionSelectionServiceTest extends AthenaTest {

@Autowired
private AthenaSubmissionSelectionService athenaSubmissionSelectionService;
Expand All @@ -35,22 +29,9 @@ class AthenaSubmissionSelectionServiceTest extends AbstractSpringIntegrationBamb
void setUp() {
athenaRequestMockProvider.enableMockingOfRequests();

textExercise = new TextExercise();
textExercise.setAssessmentType(AssessmentType.SEMI_AUTOMATIC); // needed for feedback suggestions
textExercise.setId(1L);
textExercise.setTitle("Test Exercise");
textExercise.setMaxPoints(10.0);

textSubmission1 = new TextSubmission();
textSubmission1.setId(1L);

textSubmission2 = new TextSubmission();
textSubmission2.setId(2L);
}

@AfterEach
void tearDown() throws Exception {
athenaRequestMockProvider.reset();
textExercise = createTextExercise();
textSubmission1 = new TextSubmission(1L);
textSubmission2 = new TextSubmission(2L);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,28 +6,17 @@

import java.util.Set;

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.test.util.ReflectionTestUtils;

import de.tum.in.www1.artemis.AbstractSpringIntegrationBambooBitbucketJiraTest;
import de.tum.in.www1.artemis.connector.AthenaRequestMockProvider;
import de.tum.in.www1.artemis.domain.TextExercise;
import de.tum.in.www1.artemis.domain.TextSubmission;
import de.tum.in.www1.artemis.domain.enumeration.AssessmentType;
import de.tum.in.www1.artemis.repository.TextSubmissionRepository;

class AthenaSubmissionSendingServiceTest extends AbstractSpringIntegrationBambooBitbucketJiraTest {

@Value("${artemis.athena.url}")
private String athenaUrl;

@Autowired
private AthenaRequestMockProvider athenaRequestMockProvider;
class AthenaSubmissionSendingServiceTest extends AthenaTest {

@Mock
private TextSubmissionRepository textSubmissionRepository;
Expand All @@ -45,23 +34,12 @@ void setUp() {

athenaRequestMockProvider.enableMockingOfRequests();

textExercise = new TextExercise();
textExercise.setAssessmentType(AssessmentType.SEMI_AUTOMATIC); // needed for feedback suggestions
textExercise.setId(1L);
textExercise.setTitle("Test Exercise");
textExercise.setMaxPoints(10.0);

textSubmission = new TextSubmission();
textSubmission.setId(2L);
textExercise = createTextExercise();
textSubmission = new TextSubmission(2L);

when(textSubmissionRepository.getTextSubmissionsWithTextBlocksByExerciseId(textExercise.getId())).thenReturn(Set.of(textSubmission));
}

@AfterEach
void tearDown() throws Exception {
athenaRequestMockProvider.reset();
}

@Test
void testSendSubmissionsSuccess() {
athenaRequestMockProvider.mockSendSubmissionsAndExpect(jsonPath("$.exercise.id").value(textExercise.getId()), jsonPath("$.exercise.title").value(textExercise.getTitle()),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package de.tum.in.www1.artemis.service.connectors.athena;

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;

import de.tum.in.www1.artemis.AbstractSpringIntegrationBambooBitbucketJiraTest;
import de.tum.in.www1.artemis.connector.AthenaRequestMockProvider;
import de.tum.in.www1.artemis.domain.TextExercise;
import de.tum.in.www1.artemis.domain.enumeration.AssessmentType;

abstract public class AthenaTest extends AbstractSpringIntegrationBambooBitbucketJiraTest {

Check warning on line 13 in src/test/java/de/tum/in/www1/artemis/service/connectors/athena/AthenaTest.java

View check run for this annotation

Teamscale / teamscale-findings

src/test/java/de/tum/in/www1/artemis/service/connectors/athena/AthenaTest.java#L13

[New] Interface comment missing https://teamscale.io/findings.html#details/GitHub-ls1intum-Artemis?t=development%2Fnew-athena%3AHEAD&id=C052D935AABCEB145B6F61A05DDC60EF

@Value("${artemis.athena.url}")
protected String athenaUrl;

@Autowired
protected AthenaRequestMockProvider athenaRequestMockProvider;

@BeforeEach
void initTestCase() {
athenaRequestMockProvider.enableMockingOfRequests();
}

@AfterEach
void tearDown() throws Exception {
athenaRequestMockProvider.reset();
}

/**
* Create an example text exercise with feedback suggestions enabled
*/
protected TextExercise createTextExercise() {
TextExercise textExercise = new TextExercise();
textExercise.setId(1L);
textExercise.setTitle("Test Exercise");
textExercise.setAssessmentType(AssessmentType.SEMI_AUTOMATIC);
textExercise.setMaxPoints(10.0);
return textExercise;
}
}

0 comments on commit ad9db61

Please sign in to comment.