use of org.sonar.server.webhook.ProjectAnalysis in project sonarqube by SonarSource.
the class WebhookPostTaskTest method callWebHooks.
private void callWebHooks(@Nullable String analysisUUid, @Nullable QualityGate qualityGate) {
Project project = newProjectBuilder().setUuid(randomAlphanumeric(3)).setKey(randomAlphanumeric(4)).setName(randomAlphanumeric(5)).build();
CeTask ceTask = newCeTaskBuilder().setStatus(CeTask.Status.values()[random.nextInt(CeTask.Status.values().length)]).setId(randomAlphanumeric(6)).build();
Date date = new Date();
Map<String, String> properties = ImmutableMap.of(randomAlphanumeric(17), randomAlphanumeric(18));
Branch branch = newBranchBuilder().setIsMain(random.nextBoolean()).setType(Branch.Type.values()[random.nextInt(Branch.Type.values().length)]).setName(randomAlphanumeric(29)).build();
PostProjectAnalysisTaskTester.of(underTest).at(date).withCeTask(ceTask).withProject(project).withBranch(branch).withQualityGate(qualityGate).withScannerContext(newScannerContextBuilder().addProperties(properties).build()).withAnalysisUuid(analysisUUid).withQualityGate(qualityGate).execute();
ArgumentCaptor<Supplier> supplierCaptor = ArgumentCaptor.forClass(Supplier.class);
verify(webHooks).sendProjectAnalysisUpdate(eq(new WebHooks.Analysis(project.getUuid(), analysisUUid, ceTask.getId())), supplierCaptor.capture(), any(LogStatistics.class));
assertThat(supplierCaptor.getValue().get()).isSameAs(webhookPayload);
EvaluatedQualityGate webQualityGate = null;
if (qualityGate != null) {
QualityGate.Condition condition = qualityGate.getConditions().iterator().next();
Condition qgCondition = new Condition(condition.getMetricKey(), Condition.Operator.valueOf(condition.getOperator().name()), condition.getErrorThreshold());
webQualityGate = EvaluatedQualityGate.newBuilder().setQualityGate(new org.sonar.server.qualitygate.QualityGate(qualityGate.getId(), qualityGate.getName(), Collections.singleton(qgCondition))).setStatus(Metric.Level.valueOf(qualityGate.getStatus().name())).addEvaluatedCondition(qgCondition, EvaluatedCondition.EvaluationStatus.valueOf(condition.getStatus().name()), condition.getValue()).build();
}
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())), analysisUUid == null ? null : new Analysis(analysisUUid, date.getTime(), null), new org.sonar.server.webhook.Branch(branch.isMain(), branch.getName().get(), org.sonar.server.webhook.Branch.Type.valueOf(branch.getType().name())), webQualityGate, analysisUUid == null ? null : date.getTime(), properties));
}
Aggregations