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

Skip to content
Snippets Groups Projects

Resolve "Sharing Plattform: Prüfung: Gitlab Login für Simon in Produktion funktioniert nicht zuverlässig."

Viewing commit 99c34f67
Show latest version
1 file
+ 20
4
Compare changes
  • Side-by-side
  • Inline
@@ -10,6 +10,7 @@ import static org.mockito.Mockito.verify;
import at.ac.uibk.gitsearch.GitsearchApp;
import at.ac.uibk.gitsearch.repository.gitlab.GitLabRepository;
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.testESService.ElasticSearchTestConfiguration;
import at.ac.uibk.gitsearch.service.MailService;
@@ -28,8 +29,10 @@ import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import java.util.concurrent.TimeUnit;
import java.util.stream.Stream;
import javax.el.MethodNotFoundException;
@@ -51,6 +54,8 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
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;
@SpringBootTest(classes = GitsearchApp.class)
@@ -67,6 +72,9 @@ public class GitlabEventServiceIT {
@Autowired
protected GitlabEventService eventService;
@Autowired
protected MetaDataRepository metaDataRepository;
@MockBean
private MailService mailService;
@@ -118,17 +126,25 @@ public class GitlabEventServiceIT {
@Test
@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();
Mockito.reset(mailService);
Mockito
.when(mailService.sendEmail(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.eq(false), Mockito.eq(true)))
.thenReturn(Boolean.TRUE);
logger.info("starting handleGitLabEvent for {}", permissionCommitEvent);
logger.info("starting permissionCommitEvent for {}", permissionCommitEvent);
eventService.handleGitLabEvent(permissionCommitEvent);
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
@@ -228,7 +244,7 @@ public class GitlabEventServiceIT {
}
@Test
@Timeout(value = 30, unit = TimeUnit.MINUTES)
@Timeout(value = 1, unit = TimeUnit.MINUTES)
void simpleDeleteTest() throws StreamReadException, DatabindException, IOException, GitLabApiException, InterruptedException {
assertThat(gitLabRepository.getAdminGitLabApi().getAuthToken())
.describedAs("This test requires a valid admin access token")