Skip to content

Commit 8c77c82

Browse files
committed
test(BranchService): add test that pinned branches and prs are shown first
1 parent 1c2c28a commit 8c77c82

File tree

3 files changed

+137
-1
lines changed

3 files changed

+137
-1
lines changed

server/application-server/src/main/java/de/tum/cit/aet/helios/pullrequest/PullRequestService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ public List<PullRequestBaseInfoDto> getAllPullRequests() {
3333
} else if (!pr1.isPinned() && pr2.isPinned()) {
3434
return 1;
3535
} else {
36-
return pr2.updatedAt().compareTo(pr1.updatedAt());
36+
return 0;
3737
}
3838
})
3939
.collect(Collectors.toList());
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package de.tum.cit.aet.helios.branch;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.mockito.Mockito.when;
5+
6+
import de.tum.cit.aet.helios.auth.AuthService;
7+
import de.tum.cit.aet.helios.gitrepo.GitRepository;
8+
import de.tum.cit.aet.helios.releasecandidate.ReleaseCandidateRepository;
9+
import de.tum.cit.aet.helios.userpreference.UserPreference;
10+
import de.tum.cit.aet.helios.userpreference.UserPreferenceRepository;
11+
import java.util.List;
12+
import java.util.Optional;
13+
import java.util.Set;
14+
import org.junit.Test;
15+
import org.junit.jupiter.api.Assertions;
16+
import org.junit.jupiter.api.BeforeEach;
17+
import org.junit.runner.RunWith;
18+
import org.mockito.InjectMocks;
19+
import org.mockito.Mock;
20+
import org.mockito.MockitoAnnotations;
21+
import org.mockito.junit.MockitoJUnitRunner;
22+
23+
@RunWith(MockitoJUnitRunner.class)
24+
public class BranchServiceTest {
25+
26+
@InjectMocks private BranchService branchService;
27+
@Mock private BranchRepository branchRepository;
28+
@Mock private ReleaseCandidateRepository releaseCandidateRepository;
29+
@Mock private UserPreferenceRepository userPreferenceRepository;
30+
@Mock private AuthService authService;
31+
32+
@BeforeEach
33+
public void init() {
34+
MockitoAnnotations.openMocks(this);
35+
}
36+
37+
@Test
38+
public void testPinnedBranchesAreShownFirst() {
39+
final GitRepository repo = new GitRepository();
40+
repo.setRepositoryId(1L);
41+
42+
final Branch b1 = new Branch();
43+
b1.setName("branch1");
44+
b1.setRepository(repo);
45+
46+
final Branch b2 = new Branch();
47+
b2.setName("branch2");
48+
b2.setRepository(repo);
49+
50+
final List<Branch> branches = List.of(b1, b2);
51+
52+
final UserPreference userPreference = new UserPreference();
53+
userPreference.setFavouriteBranches(Set.of(b2));
54+
55+
when(branchRepository.findAll()).thenReturn(branches);
56+
when(authService.getUserFromGithubId()).thenReturn(null);
57+
when(userPreferenceRepository.findByUser(null)).thenReturn(Optional.of(userPreference));
58+
59+
BranchInfoDto b1Dto =
60+
BranchInfoDto.fromBranchAndUserPreference(b1, Optional.of(userPreference));
61+
BranchInfoDto b2Dto =
62+
BranchInfoDto.fromBranchAndUserPreference(b2, Optional.of(userPreference));
63+
64+
assertEquals(2, branchService.getAllBranches().size());
65+
Assertions.assertIterableEquals(List.of(b2Dto, b1Dto), branchService.getAllBranches());
66+
}
67+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package de.tum.cit.aet.helios.pullrequest;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.mockito.Mockito.when;
5+
6+
import de.tum.cit.aet.helios.auth.AuthService;
7+
import de.tum.cit.aet.helios.gitrepo.GitRepository;
8+
import de.tum.cit.aet.helios.userpreference.UserPreference;
9+
import de.tum.cit.aet.helios.userpreference.UserPreferenceRepository;
10+
import java.util.List;
11+
import java.util.Optional;
12+
import java.util.Set;
13+
import org.junit.Test;
14+
import org.junit.jupiter.api.Assertions;
15+
import org.junit.jupiter.api.BeforeEach;
16+
import org.junit.runner.RunWith;
17+
import org.mockito.InjectMocks;
18+
import org.mockito.Mock;
19+
import org.mockito.MockitoAnnotations;
20+
import org.mockito.junit.MockitoJUnitRunner;
21+
22+
@RunWith(MockitoJUnitRunner.class)
23+
public class PullRequestServiceTest {
24+
25+
@InjectMocks private PullRequestService pullRequestService;
26+
@Mock private PullRequestRepository pullRequestsRepository;
27+
@Mock private UserPreferenceRepository userPreferenceRepository;
28+
@Mock private AuthService authService;
29+
30+
@BeforeEach
31+
public void init() {
32+
MockitoAnnotations.openMocks(this);
33+
}
34+
35+
@Test
36+
public void testPinnedBranchesAreShownFirst() {
37+
final GitRepository repo = new GitRepository();
38+
repo.setRepositoryId(1L);
39+
40+
final PullRequest pr1 = new PullRequest();
41+
pr1.setId(1L);
42+
pr1.setNumber(1);
43+
pr1.setRepository(repo);
44+
45+
final PullRequest pr2 = new PullRequest();
46+
pr2.setId(2L);
47+
pr2.setNumber(2);
48+
pr2.setRepository(repo);
49+
50+
final List<PullRequest> prs = List.of(pr1, pr2);
51+
52+
final UserPreference userPreference = new UserPreference();
53+
userPreference.setFavouritePullRequests(Set.of(pr2));
54+
55+
when(pullRequestsRepository.findAllByOrderByUpdatedAtDesc()).thenReturn(prs);
56+
when(authService.getUserFromGithubId()).thenReturn(null);
57+
when(userPreferenceRepository.findByUser(null)).thenReturn(Optional.of(userPreference));
58+
59+
PullRequestBaseInfoDto pr1Dto =
60+
PullRequestBaseInfoDto.fromPullRequestAndUserPreference(pr1, Optional.of(userPreference));
61+
62+
PullRequestBaseInfoDto pr2Dto =
63+
PullRequestBaseInfoDto.fromPullRequestAndUserPreference(pr2, Optional.of(userPreference));
64+
65+
assertEquals(2, pullRequestService.getAllPullRequests().size());
66+
Assertions.assertIterableEquals(
67+
List.of(pr2Dto, pr1Dto), pullRequestService.getAllPullRequests());
68+
}
69+
}

0 commit comments

Comments
 (0)