private List<ProjectAnalysis> extractPayloadFactoryArguments(int time) { ArgumentCaptor<ProjectAnalysis> projectAnalysisCaptor = ArgumentCaptor.forClass(ProjectAnalysis.class); verify(webhookPayloadFactory, Mockito.times(time)).create(projectAnalysisCaptor.capture()); return projectAnalysisCaptor.getAllValues(); }
@Before public void wireMocks() { when(payloadFactory.create(any(ProjectAnalysis.class))).thenReturn(webhookPayload); when(configurationRepository.getConfiguration()).thenReturn(configuration); }
@Override public void finished(ProjectAnalysis analysis) { webHooks.sendProjectAnalysisUpdate( new WebHooks.Analysis( analysis.getProject().getUuid(), analysis.getAnalysis().map(org.sonar.api.ce.posttask.Analysis::getAnalysisUuid).orElse(null), analysis.getCeTask().getId()), () -> payloadFactory.create(convert(analysis))); }
private WebhookPayload buildWebHookPayload(DbSession dbSession, QGChangeEvent event, @Nullable EvaluatedQualityGate evaluatedQualityGate) { ComponentDto project = event.getProject(); BranchDto branch = event.getBranch(); SnapshotDto analysis = event.getAnalysis(); Map<String, String> analysisProperties = dbClient.analysisPropertiesDao().selectBySnapshotUuid(dbSession, analysis.getUuid()) .stream() .collect(Collectors.toMap(AnalysisPropertyDto::getKey, AnalysisPropertyDto::getValue)); String projectUuid = StringUtils.defaultString(project.getMainBranchProjectUuid(), project.projectUuid()); ProjectAnalysis projectAnalysis = new ProjectAnalysis( new Project(projectUuid, project.getKey(), project.name()), null, new Analysis(analysis.getUuid(), analysis.getCreatedAt()), new Branch(branch.isMain(), branch.getKey(), Type.valueOf(branch.getBranchType().name())), evaluatedQualityGate, null, analysisProperties); return webhookPayloadFactory.create(projectAnalysis); }
@Test public void create_without_ce_task() { ProjectAnalysis analysis = newAnalysis(null, null, null, null, emptyMap()); WebhookPayload payload = underTest.create(analysis); String json = payload.getJson(); assertThat(json).doesNotContain("taskId"); assertJson(json) .isSimilarTo("{" + " \"serverUrl\": \"http://foo\"," + " \"status\": \"SUCCESS\"," + " \"changedAt\": \"1970-01-01T01:25:00+0100\"," + " \"project\": {" + " \"key\": \"P1\"," + " \"name\": \"Project One\"" + " }," + " \"properties\": {" + " }" + "}"); }
@Test public void create_payload_for_no_analysis_date() { CeTask ceTask = new CeTask("#1", CeTask.Status.FAILED); ProjectAnalysis analysis = newAnalysis(ceTask, null, null, null, emptyMap()); WebhookPayload payload = underTest.create(analysis); assertThat(payload.getProjectKey()).isEqualTo(PROJECT_KEY); assertJson(payload.getJson()) .isSimilarTo("{" + " \"serverUrl\": \"http://foo\"," + " \"taskId\": \"#1\"," + " \"status\": \"FAILED\"," + " \"changedAt\": \"1970-01-01T01:25:00+0100\"," + " \"project\": {" + " \"key\": \"P1\"," + " \"name\": \"Project One\"" + " }," + " \"properties\": {" + " }" + "}"); }
verify(payloadFactory).create(new ProjectAnalysis( new org.sonar.server.webhook.Project(project.getUuid(), project.getKey(), project.getName()), new org.sonar.server.webhook.CeTask(ceTask.getId(), org.sonar.server.webhook.CeTask.Status.valueOf(ceTask.getStatus().name())),
@Override public void finished(ProjectAnalysis analysis) { webHooks.sendProjectAnalysisUpdate( new WebHooks.Analysis( analysis.getProject().getUuid(), analysis.getAnalysis().map(org.sonar.api.ce.posttask.Analysis::getAnalysisUuid).orElse(null), analysis.getCeTask().getId()), () -> payloadFactory.create(convert(analysis))); }
private WebhookPayload buildWebHookPayload(DbSession dbSession, QGChangeEvent event, @Nullable EvaluatedQualityGate evaluatedQualityGate) { ComponentDto project = event.getProject(); BranchDto branch = event.getBranch(); SnapshotDto analysis = event.getAnalysis(); Map<String, String> analysisProperties = dbClient.analysisPropertiesDao().selectBySnapshotUuid(dbSession, analysis.getUuid()) .stream() .collect(Collectors.toMap(AnalysisPropertyDto::getKey, AnalysisPropertyDto::getValue)); String projectUuid = StringUtils.defaultString(project.getMainBranchProjectUuid(), project.projectUuid()); ProjectAnalysis projectAnalysis = new ProjectAnalysis( new Project(projectUuid, project.getKey(), project.name()), null, new Analysis(analysis.getUuid(), analysis.getCreatedAt()), new Branch(branch.isMain(), branch.getKey(), Type.valueOf(branch.getBranchType().name())), evaluatedQualityGate, null, analysisProperties); return webhookPayloadFactory.create(projectAnalysis); }