Skip to content

Commit e528ef5

Browse files
Adrià Maneromikededo
authored andcommitted
feat: add additions, deletions and date to PullRequest entity
1 parent b1eb97c commit e528ef5

File tree

5 files changed

+60
-54
lines changed

5 files changed

+60
-54
lines changed

src/main/java/io/pakland/mdas/githubstats/application/dto/PullRequestDTO.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,18 @@
22

33
import io.pakland.mdas.githubstats.domain.enums.PullRequestState;
44

5+
import java.time.Instant;
6+
57
public interface PullRequestDTO {
68
Integer getId();
9+
710
Integer getNumber();
11+
812
PullRequestState getState();
13+
14+
Instant getClosedAt();
15+
16+
Integer getAdditions();
17+
18+
Integer getDeletions();
919
}
Lines changed: 8 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package io.pakland.mdas.githubstats.domain.entity;
22

3+
import io.pakland.mdas.githubstats.domain.enums.PullRequestState;
4+
import java.time.Instant;
35
import java.util.*;
46
import java.util.stream.Collectors;
5-
6-
import io.pakland.mdas.githubstats.domain.enums.PullRequestState;
77
import lombok.*;
88

99
@Data
@@ -18,6 +18,12 @@ public class PullRequest {
1818

1919
private PullRequestState state;
2020

21+
private Instant closedAt;
22+
23+
private Integer additions;
24+
25+
private Integer deletions;
26+
2127
@ToString.Exclude
2228
private Repository repository;
2329

@@ -37,26 +43,4 @@ public void addCommits(Collection<Commit> commits) {
3743
this.commits.add(commit);
3844
});
3945
}
40-
public List<Commit> getCommitsByUser(User user) {
41-
return commits
42-
.stream()
43-
.filter(commit -> commit.getUser().equals(user))
44-
.collect(Collectors.toList());
45-
}
46-
47-
public boolean isClosed() {
48-
return state.equals(PullRequestState.CLOSED);
49-
}
50-
51-
public boolean isCreatedByUser(User user) {
52-
return this.user.equals(user);
53-
}
54-
55-
public List<UserReview> getReviewsFromUser(User user) {
56-
return userReviews
57-
.stream()
58-
.filter(x -> x.getUser().equals(user))
59-
.collect(Collectors.toList());
60-
}
61-
6246
}
Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
package io.pakland.mdas.githubstats.domain.entity;
22

3-
import javax.persistence.*;
4-
53
import lombok.Data;
64
import lombok.NoArgsConstructor;
75
import lombok.ToString;
86

7+
import javax.persistence.*;
98
import java.util.ArrayList;
109
import java.util.List;
1110

@@ -22,24 +21,12 @@ public class UserReview {
2221

2322
private List<Comment> comments = new ArrayList<>();
2423

25-
public int sumCommentLength() {
26-
return comments.stream().mapToInt(Comment::getLength).sum();
27-
}
28-
29-
@Override
30-
public boolean equals(Object o) {
31-
if (this == o) return true;
32-
if (!(o instanceof UserReview )) return false;
33-
return id != null && id.equals(((UserReview) o).getId());
34-
}
35-
36-
@Override
37-
public int hashCode() {
38-
return getClass().hashCode();
39-
}
40-
41-
public boolean isReviewFromTeam(Team team) {
42-
return pullRequest.getRepository().getTeam().equals(team);
43-
}
24+
public int sumCommentLength() {
25+
return comments.stream().mapToInt(Comment::getLength).sum();
26+
}
27+
28+
public boolean isReviewFromTeam(Team team) {
29+
return pullRequest.getRepository().getTeam().equals(team);
30+
}
4431

4532
}

src/main/java/io/pakland/mdas/githubstats/infrastructure/github/model/GitHubPullRequestDTO.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
import io.pakland.mdas.githubstats.application.dto.PullRequestStateDTO;
66
import io.pakland.mdas.githubstats.domain.enums.PullRequestState;
77

8+
import java.time.Instant;
9+
810
public class GitHubPullRequestDTO implements PullRequestDTO {
911

1012
@JsonProperty("id")
@@ -16,6 +18,15 @@ public class GitHubPullRequestDTO implements PullRequestDTO {
1618
@JsonProperty("state")
1719
private PullRequestStateDTO state;
1820

21+
@JsonProperty("closed_at")
22+
private Instant closedAt;
23+
24+
@JsonProperty("additions")
25+
private Integer additions;
26+
27+
@JsonProperty("deletions")
28+
private Integer deletions;
29+
1930
@Override
2031
public Integer getId() {
2132
return this.id;
@@ -31,4 +42,18 @@ public PullRequestState getState() {
3142
return this.state.getValue();
3243
}
3344

45+
@Override
46+
public Instant getClosedAt() {
47+
return this.closedAt;
48+
}
49+
50+
@Override
51+
public Integer getAdditions() {
52+
return this.additions;
53+
}
54+
55+
@Override
56+
public Integer getDeletions() {
57+
return this.deletions;
58+
}
3459
}

src/test/java/io/pakland/mdas/githubstats/application/external/FetchCommitsFromPullRequestTest.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,19 +30,19 @@ public void init() {
3030
@Test
3131
public void whenValidRepository_shouldReturnTheListOfCommits()
3232
throws HttpException {
33-
Commit commit = new Commit();
34-
commit.setSha("a0b3ed9d5f1356575f2b16ab8ef5d93c5ce77575");
35-
commit.setDate(new Date());
36-
Commit commit1 = new Commit();
37-
commit1.setSha("f16b593d35d6e66dc7e1c8727d4eaa829d3973ed");
38-
commit1.setDate(new Date());
33+
Commit commitOne = Commit.builder().sha(
34+
"a0b3ed9d5f1356575f2b16ab8ef5d93c5ce77575"
35+
).date(new Date()).additions(250).deletions(125).build();
36+
Commit commitTwo = Commit.builder().sha(
37+
"f16b593d35d6e66dc7e1c8727d4eaa829d3973ed"
38+
).date(new Date()).additions(250).deletions(125).build();
3939

4040
CommitExternalRepository repository = Mockito.mock(
4141
CommitExternalRepository.class);
4242

4343
Mockito.when(repository.fetchCommitsFromPullRequest(Mockito.any(
4444
FetchCommitsFromPullRequestRequest.class)))
45-
.thenReturn(new ArrayList<>(Arrays.asList(commit, commit1)))
45+
.thenReturn(new ArrayList<>(Arrays.asList(commitOne, commitTwo)))
4646
.thenReturn(new ArrayList<>());
4747

4848
List<Commit> response = new FetchCommitsFromPullRequest(repository).execute(
@@ -56,8 +56,8 @@ public void whenValidRepository_shouldReturnTheListOfCommits()
5656
assertEquals(2, captor.getValue().getPage());
5757
assertEquals(100, captor.getValue().getPerPage());
5858
assertEquals(2, response.size());
59-
assertEquals(commit.getSha(), response.get(0).getSha());
60-
assertEquals(commit1.getSha(), response.get(1).getSha());
59+
assertEquals(commitOne.getSha(), response.get(0).getSha());
60+
assertEquals(commitTwo.getSha(), response.get(1).getSha());
6161
}
6262

6363
@Test

0 commit comments

Comments
 (0)