private static Ce.Task formatActivity(CeActivityDto dto, DtoCache cache, @Nullable String scannerContext, List<String> warnings) { Ce.Task.Builder builder = Ce.Task.newBuilder(); String organizationKey = cache.getOrganizationKey(dto.getComponentUuid()); ofNullable(organizationKey).ifPresent(builder::setOrganization); builder.setId(dto.getUuid()); builder.setStatus(Ce.TaskStatus.valueOf(dto.getStatus().name())); builder.setType(dto.getTaskType()); builder.setLogs(false); ofNullable(dto.getComponentUuid()).ifPresent(uuid -> setComponent(builder, uuid, cache).setComponentId(uuid)); String analysisUuid = dto.getAnalysisUuid(); ofNullable(analysisUuid).ifPresent(builder::setAnalysisId); setBranchOrPullRequest(builder, dto.getUuid(), cache); ofNullable(analysisUuid).ifPresent(builder::setAnalysisId); cache.getUser(dto.getSubmitterUuid()).ifPresent(user -> builder.setSubmitterLogin(user.getLogin())); builder.setSubmittedAt(formatDateTime(new Date(dto.getSubmittedAt()))); ofNullable(dto.getStartedAt()).map(DateUtils::formatDateTime).ifPresent(builder::setStartedAt); ofNullable(dto.getExecutedAt()).map(DateUtils::formatDateTime).ifPresent(builder::setExecutedAt); ofNullable(dto.getExecutionTimeMs()).ifPresent(builder::setExecutionTimeMs); ofNullable(dto.getErrorMessage()).ifPresent(builder::setErrorMessage); ofNullable(dto.getErrorStacktrace()).ifPresent(builder::setErrorStacktrace); ofNullable(dto.getErrorType()).ifPresent(builder::setErrorType); ofNullable(scannerContext).ifPresent(builder::setScannerContext); builder.setHasScannerContext(dto.isHasScannerContext()); builder.setWarningCount(dto.getWarningCount()); warnings.forEach(builder::addWarnings); return builder.build(); }
@Test public void selectByUuid_populates_warning_count() { CeActivityDto[] tasks = { insert("TASK_1", REPORT, "PROJECT_1", SUCCESS), insert("TASK_2", REPORT, "PROJECT_1", SUCCESS), insert("TASK_3", REPORT, "PROJECT_1", SUCCESS) }; int moreThan1 = 2 + new Random().nextInt(5); insertWarnings(tasks[0], moreThan1); insertWarnings(tasks[1], 0); insertWarnings(tasks[2], 1); assertThat(underTest.selectByUuid(dbSession, tasks[0].getUuid()).get().getWarningCount()).isEqualTo(moreThan1); assertThat(underTest.selectByUuid(dbSession, tasks[1].getUuid()).get().getWarningCount()).isEqualTo(0); assertThat(underTest.selectByUuid(dbSession, tasks[2].getUuid()).get().getWarningCount()).isEqualTo(1); }