This is the codeAbility Sharing Platform! Learn more about the codeAbility Sharing Platform.

Skip to content
Snippets Groups Projects
Commit 99c34f67 authored by Michael Breu's avatar Michael Breu
Browse files

Adding tests

parent f50582a1
2 merge requests!284Preparing August Release,!260Resolve "Sharing Plattform: Prüfung: Gitlab Login für Simon in Produktion funktioniert nicht zuverlässig."
...@@ -10,6 +10,7 @@ import static org.mockito.Mockito.verify; ...@@ -10,6 +10,7 @@ import static org.mockito.Mockito.verify;
import at.ac.uibk.gitsearch.GitsearchApp; import at.ac.uibk.gitsearch.GitsearchApp;
import at.ac.uibk.gitsearch.repository.gitlab.GitLabRepository; import at.ac.uibk.gitsearch.repository.gitlab.GitLabRepository;
import at.ac.uibk.gitsearch.repository.search.ElasticSearchRepository; import at.ac.uibk.gitsearch.repository.search.ElasticSearchRepository;
import at.ac.uibk.gitsearch.repository.search.MetaDataRepository;
import at.ac.uibk.gitsearch.repository.search.SearchRepositoryConstants; import at.ac.uibk.gitsearch.repository.search.SearchRepositoryConstants;
import at.ac.uibk.gitsearch.repository.search.testESService.ElasticSearchTestConfiguration; import at.ac.uibk.gitsearch.repository.search.testESService.ElasticSearchTestConfiguration;
import at.ac.uibk.gitsearch.service.MailService; import at.ac.uibk.gitsearch.service.MailService;
...@@ -28,8 +29,10 @@ import java.io.BufferedReader; ...@@ -28,8 +29,10 @@ import java.io.BufferedReader;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.io.InputStreamReader; import java.io.InputStreamReader;
import java.text.ParseException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Stream; import java.util.stream.Stream;
import javax.el.MethodNotFoundException; import javax.el.MethodNotFoundException;
...@@ -51,6 +54,8 @@ import org.slf4j.LoggerFactory; ...@@ -51,6 +54,8 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.test.context.support.WithMockUser; import org.springframework.security.test.context.support.WithMockUser;
@SpringBootTest(classes = GitsearchApp.class) @SpringBootTest(classes = GitsearchApp.class)
...@@ -67,6 +72,9 @@ public class GitlabEventServiceIT { ...@@ -67,6 +72,9 @@ public class GitlabEventServiceIT {
@Autowired @Autowired
protected GitlabEventService eventService; protected GitlabEventService eventService;
@Autowired
protected MetaDataRepository metaDataRepository;
@MockBean @MockBean
private MailService mailService; private MailService mailService;
...@@ -118,17 +126,25 @@ public class GitlabEventServiceIT { ...@@ -118,17 +126,25 @@ public class GitlabEventServiceIT {
@Test @Test
@Timeout(value = 30, unit = TimeUnit.MINUTES) @Timeout(value = 30, unit = TimeUnit.MINUTES)
void simplePermissionTest() throws StreamReadException, DatabindException, IOException, GitLabApiException { @WithMockUser(value = "Michael Breu", authorities = "teacher/unauthenticatedteachers")
void simplePermissionTest() throws StreamReadException, DatabindException, IOException, GitLabApiException, ParseException {
SystemHookEvent permissionCommitEvent = getPermissionCommitEvent(); SystemHookEvent permissionCommitEvent = getPermissionCommitEvent();
Mockito.reset(mailService); Mockito.reset(mailService);
Mockito Mockito
.when(mailService.sendEmail(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.eq(false), Mockito.eq(true))) .when(mailService.sendEmail(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.eq(false), Mockito.eq(true)))
.thenReturn(Boolean.TRUE); .thenReturn(Boolean.TRUE);
logger.info("starting handleGitLabEvent for {}", permissionCommitEvent); logger.info("starting permissionCommitEvent for {}", permissionCommitEvent);
eventService.handleGitLabEvent(permissionCommitEvent); eventService.handleGitLabEvent(permissionCommitEvent);
eventService.waitForFinish(); eventService.waitForFinish();
logger.info("finished handleGitLabEvent for {}", permissionCommitEvent);
User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
metaDataRepository.getExerciseById("[274]", Optional.of(user));
final SearchResultDTO exercise = metaDataRepository.getExerciseById("[274]", Optional.of(user));
logger.info("finished permissionCommitEvent for {}", exercise);
assertThat(exercise.getProject().getGroups()).contains("teacher", "teacher/unauthenticatedteachers");
assertThat(exercise.getProject().getUsers()).contains("simon.priller@uibk.ac.at");
} }
@Test @Test
...@@ -228,7 +244,7 @@ public class GitlabEventServiceIT { ...@@ -228,7 +244,7 @@ public class GitlabEventServiceIT {
} }
@Test @Test
@Timeout(value = 30, unit = TimeUnit.MINUTES) @Timeout(value = 1, unit = TimeUnit.MINUTES)
void simpleDeleteTest() throws StreamReadException, DatabindException, IOException, GitLabApiException, InterruptedException { void simpleDeleteTest() throws StreamReadException, DatabindException, IOException, GitLabApiException, InterruptedException {
assertThat(gitLabRepository.getAdminGitLabApi().getAuthToken()) assertThat(gitLabRepository.getAdminGitLabApi().getAuthToken())
.describedAs("This test requires a valid admin access token") .describedAs("This test requires a valid admin access token")
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment