private EventComponentChangeDto generateEventComponentChange(EventDto event, ChangeCategory category, String name, String key, @Nullable String branch, String componentUuid) { return new EventComponentChangeDto() .setCategory(category) .setUuid(uuidFactoryFast.create()) .setComponentName(name) .setComponentKey(key) .setComponentBranchKey(branch) .setComponentUuid(componentUuid) .setEventUuid(event.getUuid()); }
private static Project addSingleChange(EventComponentChangeDto componentChange) { Project project = new Project() .setKey(componentChange.getComponentKey()) .setName(componentChange.getComponentName()) .setBranch(componentChange.getComponentBranchKey()); switch (componentChange.getCategory()) { case ADDED: project.setChangeType("ADDED"); break; case REMOVED: project.setChangeType("REMOVED"); break; default: throw new IllegalStateException(format("Unknown change %s for eventComponentChange uuid: %s", componentChange.getCategory(), componentChange.getUuid())); } return project; }
private static ProjectAnalyses.Failing toFailing(EventComponentChangeDto change) { ProjectAnalyses.Failing.Builder builder = ProjectAnalyses.Failing.newBuilder() .setKey(change.getComponentKey()) .setName(change.getComponentName()); if (change.getComponentBranchKey() != null) { builder.setBranch(change.getComponentBranchKey()); } return builder.build(); }
String eventUuid = eventBase + "_event_uuid"; String uuid = rowBase + "_uuid"; EventComponentChangeDto dto = new EventComponentChangeDto() .setCategory(randomChangeCategory()) .setUuid(uuid) .setEventUuid(eventUuid) .setComponentUuid(rowBase + "_component_uuid") .setComponentKey(rowBase + "_component_key") .setComponentName(rowBase + "_component_name") .setComponentBranchKey(rowBase + "_component_branch_key"); EventPurgeData purgeData = new EventPurgeData(eventBase + "_component_uuid", eventBase + "_analysis_uuid"); long now = random.nextLong(); EventComponentChangeDto::getCreatedAt) .containsOnly(tuple( dto.getUuid(), dto.getCategory(), dto.getEventUuid(), dto.getComponentUuid(), dto.getComponentKey(), dto.getComponentName(), dto.getComponentBranchKey(), now));
String eventUuid = eventBase + "_event_uuid"; String uuid = rowBase + "_uuid"; EventComponentChangeDto dto = new EventComponentChangeDto() .setCategory(randomChangeCategory()) .setUuid(uuid) .setEventUuid(eventUuid) .setComponentUuid(rowBase + "_component_uuid") .setComponentKey(rowBase + "_component_key") .setComponentName(rowBase + "_component_name") .setComponentBranchKey(rowBase + "_component_branch_key"); EventPurgeData purgeData = new EventPurgeData(eventBase + "_component_uuid", eventBase + "_analysis_uuid"); long now = random.nextLong(); EventComponentChangeDto::getCreatedAt) .containsOnly(tuple( dto.getUuid(), dto.getCategory(), dto.getEventUuid(), dto.getComponentUuid(), dto.getComponentKey(), dto.getComponentName(), dto.getComponentBranchKey(), now));
public EventComponentChangeDto insertEventComponentChanges(EventDto event, SnapshotDto analysis, ChangeCategory changeCategory, ComponentDto component, @Nullable BranchDto branch) { EventComponentChangeDto eventComponentChange = new EventComponentChangeDto() .setUuid(UuidFactoryFast.getInstance().create()) .setCategory(changeCategory) .setEventUuid(event.getUuid()) .setComponentUuid(component.uuid()) .setComponentKey(component.getKey()) .setComponentName(component.name()) .setComponentBranchKey(Optional.ofNullable(branch).map(BranchDto::getKey).orElse(null)); EventPurgeData eventPurgeData = new EventPurgeData(analysis.getComponentUuid(), analysis.getUuid()); dbClient.eventComponentChangeDao().insert(dbSession, eventComponentChange, eventPurgeData); db.commit(); return eventComponentChange; }
private static Project addBranchChange(Collection<EventComponentChangeDto> changes) { if (changes.size() != 2) { throw new IllegalStateException(format("Too many changes on same project (%d) for eventComponentChange uuids : %s", changes.size(), changes.stream().map(EventComponentChangeDto::getUuid).collect(Collectors.joining(",")))); } Optional<EventComponentChangeDto> addedChange = changes.stream().filter(c -> c.getCategory().equals(EventComponentChangeDto.ChangeCategory.ADDED)).findFirst(); Optional<EventComponentChangeDto> removedChange = changes.stream().filter(c -> c.getCategory().equals(EventComponentChangeDto.ChangeCategory.REMOVED)).findFirst(); if (!addedChange.isPresent() || !removedChange.isPresent() || addedChange.equals(removedChange)) { Iterator<EventComponentChangeDto> iterator = changes.iterator(); // We are missing two different ADDED and REMOVED changes EventComponentChangeDto firstChange = iterator.next(); EventComponentChangeDto secondChange = iterator.next(); throw new IllegalStateException(format("Incorrect changes : [uuid=%s change=%s, branch=%s] and [uuid=%s, change=%s, branch=%s]", firstChange.getUuid(), firstChange.getCategory().name(), firstChange.getComponentBranchKey(), secondChange.getUuid(), secondChange.getCategory().name(), secondChange.getComponentBranchKey())); } return new Project() .setName(addedChange.get().getComponentName()) .setKey(addedChange.get().getComponentKey()) .setChangeType("BRANCH_CHANGED") .setNewBranch(addedChange.get().getComponentBranchKey()) .setOldBranch(removedChange.get().getComponentBranchKey()); }
@Test public void selectByEventUuid_branchKey_can_be_null() { String eventBase = randomAlphabetic(5); String rowBase = randomAlphabetic(6); String eventUuid = eventBase + "_event_uuid"; EventComponentChangeDto dto = new EventComponentChangeDto() .setCategory(randomChangeCategory()) .setUuid(rowBase + "_uuid") .setEventUuid(eventUuid) .setComponentUuid(rowBase + "_component_uuid") .setComponentKey(rowBase + "_component_key") .setComponentName(rowBase + "_component_name") .setComponentBranchKey(null); EventPurgeData purgeData = new EventPurgeData(eventBase + "_component_uuid", eventBase + "_analysis_uuid"); long now = random.nextLong(); when(system2.now()) .thenReturn(now) .thenThrow(new IllegalStateException("now should not be called twice")); underTest.insert(dbSession, dto, purgeData); assertThat(underTest.selectByEventUuid(dbSession, eventUuid)) .extracting(EventComponentChangeDto::getUuid, EventComponentChangeDto::getComponentBranchKey) .containsOnly(tuple(dto.getUuid(), null)); }
String eventUuid2 = eventBase + "_event_uuid2"; EventComponentChangeDto[] event1Dtos = IntStream.range(0, 3) .mapToObj(i -> new EventComponentChangeDto() .setCategory(randomChangeCategory()) .setUuid(rowBase + eventUuid1 + i) .setEventUuid(eventUuid1) .setComponentUuid(rowBase + eventUuid1 + "_component_uuid" + i) .setComponentKey(rowBase + "_component_key") .setComponentName(rowBase + "_component_name") .setComponentBranchKey(null)) .toArray(EventComponentChangeDto[]::new); EventComponentChangeDto[] event2Dtos = IntStream.range(0, 2) .mapToObj(i -> new EventComponentChangeDto() .setCategory(randomChangeCategory()) .setUuid(rowBase + eventUuid2 + i) .setEventUuid(eventUuid2) .setComponentUuid(rowBase + eventUuid2 + "_component_uuid" + i) .setComponentKey(rowBase + "_component_key") .setComponentName(rowBase + "_component_name") .setComponentBranchKey(null)) .toArray(EventComponentChangeDto[]::new); EventPurgeData doesNotMatter = new EventPurgeData(randomAlphabetic(7), randomAlphabetic(8)); .containsOnly( tuple( event1Dtos[0].getUuid(), eventUuid1, now), tuple(
String eventUuid2 = eventBase + "_event_uuid2"; EventComponentChangeDto[] event1Dtos = IntStream.range(0, 3) .mapToObj(i -> new EventComponentChangeDto() .setCategory(randomChangeCategory()) .setUuid(rowBase + eventUuid1 + i) .setEventUuid(eventUuid1) .setComponentUuid(rowBase + eventUuid1 + "_component_uuid" + i) .setComponentKey(rowBase + "_component_key") .setComponentName(rowBase + "_component_name") .setComponentBranchKey(null)) .toArray(EventComponentChangeDto[]::new); EventComponentChangeDto[] event2Dtos = IntStream.range(0, 2) .mapToObj(i -> new EventComponentChangeDto() .setCategory(randomChangeCategory()) .setUuid(rowBase + eventUuid2 + i) .setEventUuid(eventUuid2) .setComponentUuid(rowBase + eventUuid2 + "_component_uuid" + i) .setComponentKey(rowBase + "_component_key") .setComponentName(rowBase + "_component_name") .setComponentBranchKey(null)) .toArray(EventComponentChangeDto[]::new); EventPurgeData doesNotMatter = new EventPurgeData(randomAlphabetic(7), randomAlphabetic(8)); .containsOnly( tuple( event1Dtos[0].getUuid(), eventUuid1, now), tuple(