private static boolean isOnPeriod(DefaultIssue issue, Period period) { // Add one second to not take into account issues created during current analysis return issue.creationDate().getTime() > truncateToSeconds(period.getSnapshotDate()); } }
long calculate(DefaultIssue issue, Period period) { if (issue.creationDate().getTime() > truncateToSeconds(period.getSnapshotDate())) { return MoreObjects.firstNonNull(issue.effortInMinutes(), 0L); } return 0L; } }
private void doExecute(NotificationStatistics notificationStatistics, Component project) { long analysisDate = analysisMetadataHolder.getAnalysisDate(); Predicate<DefaultIssue> isOnLeakPredicate = i -> i.isNew() && i.creationDate().getTime() >= truncateToSeconds(analysisDate); NewIssuesStatistics newIssuesStats = new NewIssuesStatistics(isOnLeakPredicate); Map<String, UserDto> usersDtoByUuids; try (DbSession dbSession = dbClient.openSession(false)) { Iterable<DefaultIssue> iterable = issueCache::traverse; List<String> assigneeUuids = stream(iterable.spliterator(), false).map(DefaultIssue::assignee).filter(Objects::nonNull).collect(toList()); usersDtoByUuids = dbClient.userDao().selectByUuids(dbSession, assigneeUuids).stream().collect(toMap(UserDto::getUuid, dto -> dto)); } try (CloseableIterator<DefaultIssue> issues = issueCache.traverse()) { processIssues(newIssuesStats, issues, project, usersDtoByUuids, notificationStatistics); } if (newIssuesStats.hasIssuesOnLeak()) { sendNewIssuesNotification(newIssuesStats, project, analysisDate, notificationStatistics); sendMyNewIssuesNotification(newIssuesStats, project, analysisDate, notificationStatistics); } }
public void setCreationDate(DefaultIssue issue, Date d, IssueChangeContext context) { if (relevantDateDifference(d, issue.creationDate())) { issue.setCreationDate(d); issue.setUpdateDate(context.date()); issue.setChanged(true); } }
@Override public void onIssue(Component component, DefaultIssue issue) { if (issue.type() == RuleType.SECURITY_HOTSPOT) { return; } currentCounters.add(issue); if (!periodHolder.hasPeriod()) { return; } Period period = periodHolder.getPeriod(); // Add one second to not take into account issues created during current analysis if (issue.creationDate().getTime() > truncateToSeconds(period.getSnapshotDate())) { currentCounters.addOnPeriod(issue); } }
@Test public void initNewOpenIssue() { DefaultIssue issue = new DefaultIssue() .setRuleKey(XOO_X1); when(debtCalculator.calculate(issue)).thenReturn(DEFAULT_DURATION); underTest.initNewOpenIssue(issue); assertThat(issue.key()).isNotNull(); assertThat(issue.creationDate()).isNotNull(); assertThat(issue.updateDate()).isNotNull(); assertThat(issue.status()).isEqualTo(STATUS_OPEN); assertThat(issue.effort()).isEqualTo(DEFAULT_DURATION); assertThat(issue.isNew()).isTrue(); assertThat(issue.isCopied()).isFalse(); assertThat(issue.isFromHotspot()).isFalse(); }
@Test public void initNewOpenHotspot() { rule.setType(RuleType.SECURITY_HOTSPOT); DefaultIssue issue = new DefaultIssue() .setRuleKey(XOO_X1); when(debtCalculator.calculate(issue)).thenReturn(DEFAULT_DURATION); underTest.initNewOpenIssue(issue); assertThat(issue.key()).isNotNull(); assertThat(issue.creationDate()).isNotNull(); assertThat(issue.updateDate()).isNotNull(); assertThat(issue.status()).isEqualTo(STATUS_OPEN); assertThat(issue.effort()).isEqualTo(DEFAULT_DURATION); assertThat(issue.isNew()).isTrue(); assertThat(issue.isCopied()).isFalse(); assertThat(issue.isFromHotspot()).isTrue(); }
@Test public void set_empty_dates() { issue .setCreationDate(null) .setUpdateDate(null) .setCloseDate(null) .setSelectedAt(null); assertThat(issue.creationDate()).isNull(); assertThat(issue.updateDate()).isNull(); assertThat(issue.closeDate()).isNull(); assertThat(issue.selectedAt()).isNull(); }
assertThat(issue.isChanged()).isTrue(); assertThat(issue.mustSendNotifications()).isTrue(); assertThat(issue.creationDate()).isEqualTo(new SimpleDateFormat("yyyy-MM-dd").parse("2013-08-19")); assertThat(issue.updateDate()).isEqualTo(new SimpleDateFormat("yyyy-MM-dd").parse("2013-08-20")); assertThat(issue.closeDate()).isEqualTo(new SimpleDateFormat("yyyy-MM-dd").parse("2013-08-21"));
assertThat(issue.attribute("key")).isEqualTo("value"); assertThat(issue.authorLogin()).isEqualTo("pierre"); assertThat(issue.creationDate()).isEqualTo(DateUtils.truncate(createdAt, Calendar.SECOND)); assertThat(issue.updateDate()).isEqualTo(DateUtils.truncate(updatedAt, Calendar.SECOND)); assertThat(issue.closeDate()).isEqualTo(DateUtils.truncate(closedAt, Calendar.SECOND));
assertThat(raw.key()).isNotNull(); assertThat(raw.key()).isNotEqualTo(base.key()); assertThat(raw.creationDate()).isEqualTo(base.creationDate()); assertThat(raw.updateDate()).isEqualTo(base.updateDate()); assertThat(raw.closeDate()).isEqualTo(base.closeDate());
assertThat(raw.creationDate()).isEqualTo(base.creationDate()); assertThat(raw.updateDate()).isEqualTo(base.updateDate()); assertThat(raw.resolution()).isEqualTo(RESOLUTION_FALSE_POSITIVE);
assertThat(raw.creationDate()).isEqualTo(base.creationDate()); assertThat(raw.updateDate()).isEqualTo(base.updateDate()); assertThat(raw.assignee()).isEqualTo("base assignee uuid");
private void copyFields(DefaultIssue toIssue, DefaultIssue fromIssue) { toIssue.setType(fromIssue.type()); toIssue.setCreationDate(fromIssue.creationDate()); toIssue.setUpdateDate(fromIssue.updateDate()); toIssue.setCloseDate(fromIssue.closeDate()); toIssue.setResolution(fromIssue.resolution()); toIssue.setStatus(fromIssue.status()); toIssue.setAssigneeUuid(fromIssue.assignee()); toIssue.setAuthorLogin(fromIssue.authorLogin()); toIssue.setTags(fromIssue.tags()); toIssue.setAttributes(fromIssue.attributes()); toIssue.setEffort(debtCalculator.calculate(toIssue)); toIssue.setOnDisabledRule(fromIssue.isOnDisabledRule()); toIssue.setSelectedAt(fromIssue.selectedAt()); } }
.setProjectUuid(issue.projectUuid()) .setProjectKey(issue.projectKey()) .setIssueCreationDate(issue.creationDate()) .setIssueCloseDate(issue.closeDate()) .setIssueUpdateDate(issue.updateDate())
.setIssueAttributes(KeyValueFormat.format(issue.attributes())) .setAuthorLogin(issue.authorLogin()) .setIssueCreationDate(issue.creationDate()) .setIssueCloseDate(issue.closeDate()) .setIssueUpdateDate(issue.updateDate())
private static boolean isOnPeriod(DefaultIssue issue, Period period) { // Add one second to not take into account issues created during current analysis return issue.creationDate().getTime() > truncateToSeconds(period.getSnapshotDate()); } }
long calculate(DefaultIssue issue, Period period) { if (issue.creationDate().getTime() > truncateToSeconds(period.getSnapshotDate())) { return MoreObjects.firstNonNull(issue.effortInMinutes(), 0L); } return 0L; } }
@Override public void onIssue(Component component, DefaultIssue issue) { currentCounters.add(issue); if (!periodHolder.hasPeriod()) { return; } Period period = periodHolder.getPeriod(); // Add one second to not take into account issues created during current analysis if (issue.creationDate().getTime() > truncateToSeconds(period.getSnapshotDate())) { currentCounters.addOnPeriod(issue); } }
public void setCreationDate(DefaultIssue issue, Date d, IssueChangeContext context) { if (relevantDateDifference(d, issue.creationDate())) { issue.setCreationDate(d); issue.setUpdateDate(context.date()); issue.setChanged(true); } }