Skip to content

Commit

Permalink
ADM-780: [backend]fix:fix the bug about multiple pipeline setting can…
Browse files Browse the repository at this point in the history
…not generate report successfully
  • Loading branch information
sqsq5566 committed Jan 30, 2024
1 parent 7e6ff61 commit 7cceff3
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.stream.Stream;

@Service
@AllArgsConstructor
Expand Down Expand Up @@ -148,7 +147,8 @@ private LeadTime filterLeadTime(FetchedData.BuildKiteData buildKiteData,

private Map<String, String> getRepoMap(List<DeploymentEnvironment> deploymentEnvironments) {
return deploymentEnvironments.stream()
.collect(Collectors.toMap(DeploymentEnvironment::getId, DeploymentEnvironment::getRepository));
.collect(Collectors.toMap(DeploymentEnvironment::getId, DeploymentEnvironment::getRepository,
(value1, value2) -> value2));
}

private List<BuildKiteBuildInfo> getBuildKiteBuildInfo(String startTime, String endTime,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.ArgumentCaptor;
import org.mockito.Captor;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
Expand All @@ -29,6 +31,7 @@
import java.util.List;
import java.util.Map;

import static org.junit.jupiter.api.Assertions.assertNull;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import static org.junit.jupiter.api.Assertions.assertEquals;
Expand All @@ -50,6 +53,9 @@ public class PipelineServiceTest {
@Mock
private GitHubService gitHubService;

@Captor
ArgumentCaptor<Map<String, String>> roadMapArgumentCaptor;

@Nested
class FetchGithubData {

Expand Down Expand Up @@ -111,6 +117,37 @@ void shouldGetPipelineLeadTimeFromGithubServiceAndBuildkiteServiceWhenCodebaseSe
verify(gitHubService, times(1)).fetchPipelinesLeadTime(any(), any(), eq(token));
}

@Test
void shouldGetSecondValueInRoadMapWhenDeployEnvironmentListHasTwoElementWithSameKey() {
List<BuildKiteBuildInfo> fakeBuildKiteBuildInfos = new ArrayList<>();
String startTime = "startTime";
String endTime = "endTime";
String token = "token";
GenerateReportRequest request = GenerateReportRequest.builder()
.buildKiteSetting(BuildKiteSetting.builder()
.deploymentEnvList(List.of(DeploymentEnvironment.builder().id("env1").repository("repo1").build(),
DeploymentEnvironment.builder().id("env1").repository("repo2").build()))
.build())
.startTime(startTime)
.endTime(endTime)
.codebaseSetting(CodebaseSetting.builder().token(token).build())
.metrics(new ArrayList<>())
.build();

when(buildKiteService.fetchPipelineBuilds(eq(token), any(), eq(startTime), eq(endTime)))
.thenReturn(fakeBuildKiteBuildInfos);
when(buildKiteService.countDeployTimes(any(), eq(fakeBuildKiteBuildInfos), eq(startTime), eq(endTime)))
.thenReturn(DeployTimes.builder().build());
when(gitHubService.fetchPipelinesLeadTime(any(), any(), eq(token)))
.thenReturn(List.of(PipelineLeadTime.builder().build()));

pipelineService.fetchGithubData(request);

verify(gitHubService).fetchPipelinesLeadTime(any(), roadMapArgumentCaptor.capture(), any());
assertEquals("repo2", roadMapArgumentCaptor.getValue().get("env1"));

}

@Test
void shouldFilterAuthorByInputCrews() {
List<BuildKiteBuildInfo> fakeBuildKiteBuildInfos = List.of(
Expand Down Expand Up @@ -349,7 +386,7 @@ void shouldGenerateValueWithoutCommitWhenCodebaseSettingIsEmpty() {
List.of(DeploymentEnvironment.builder().id("env1").build()));

assertEquals(1, result.size());
assertEquals(null, result.get(0).getCommitInfo());
assertNull(result.get(0).getCommitInfo());
verify(buildKiteService, times(1)).getPipelineStepNames(any());
verify(buildKiteService, times(1)).getBuildKiteJob(any(), any(), any(), any(), any());
}
Expand All @@ -374,7 +411,7 @@ void shouldGenerateValueWithoutCommitWhenCodebaseSettingTokenIsEmpty() {
List.of(DeploymentEnvironment.builder().id("env1").build()));

assertEquals(1, result.size());
assertEquals(null, result.get(0).getCommitInfo());
assertNull(result.get(0).getCommitInfo());
verify(buildKiteService, times(1)).getPipelineStepNames(any());
verify(buildKiteService, times(1)).getBuildKiteJob(any(), any(), any(), any(), any());
}
Expand All @@ -399,7 +436,7 @@ void shouldGenerateValueWithoutCommitWhenCommitIdIsEmpty() {
List.of(DeploymentEnvironment.builder().id("env1").build()));

assertEquals(1, result.size());
assertEquals(null, result.get(0).getCommitInfo());
assertNull(result.get(0).getCommitInfo());
verify(buildKiteService, times(1)).getPipelineStepNames(any());
verify(buildKiteService, times(1)).getBuildKiteJob(any(), any(), any(), any(), any());
}
Expand Down

0 comments on commit 7cceff3

Please sign in to comment.