private Optional<SnapshotDto> findFirstSnapshot(DbSession session, SnapshotQuery query) { return dbClient.snapshotDao().selectAnalysesByQuery(session, query) .stream() .findFirst(); }
private Optional<Period> resolveByDays(DbSession dbSession, String projectUuid, Integer days, String propertyValue) { checkPeriodProperty(days > 0, propertyValue, "number of days is <= 0"); long analysisDate = analysisMetadataHolder.getAnalysisDate(); List<SnapshotDto> snapshots = dbClient.snapshotDao().selectAnalysesByQuery(dbSession, createCommonQuery(projectUuid).setCreatedBefore(analysisDate).setSort(BY_DATE, ASC)); ensureNotOnFirstAnalysis(!snapshots.isEmpty()); Instant targetDate = DateUtils.addDays(Instant.ofEpochMilli(analysisDate), -days); LOG.debug("Resolving new code period by {} days: {}", days, supplierToString(() -> logDate(targetDate))); SnapshotDto snapshot = findNearestSnapshotToTargetDate(snapshots, targetDate); return Optional.of(newPeriod(LEAK_PERIOD_MODE_DAYS, String.valueOf((int) days), snapshot)); }
@Test public void select_snapshots_by_query() { db.prepareDbUnit(getClass(), "select_snapshots_by_query.xml"); assertThat(underTest.selectAnalysesByQuery(db.getSession(), new SnapshotQuery())).hasSize(6); assertThat(underTest.selectAnalysesByQuery(db.getSession(), new SnapshotQuery().setComponentUuid("ABCD").setSort(BY_DATE, ASC)).get(0).getId()).isEqualTo(1L); assertThat(underTest.selectAnalysesByQuery(db.getSession(), new SnapshotQuery().setComponentUuid("ABCD").setSort(BY_DATE, DESC)).get(0).getId()).isEqualTo(3L); assertThat(underTest.selectAnalysesByQuery(db.getSession(), new SnapshotQuery().setComponentUuid("ABCD"))).hasSize(3); assertThat(underTest.selectAnalysesByQuery(db.getSession(), new SnapshotQuery().setComponentUuid("UNKOWN"))).isEmpty(); assertThat(underTest.selectAnalysesByQuery(db.getSession(), new SnapshotQuery().setComponentUuid("GHIJ"))).isEmpty(); }
private SnapshotDto getUnprocessedSnapshot(String componentUuid) { List<SnapshotDto> projectSnapshots = dbClient.snapshotDao().selectAnalysesByQuery(dbTester.getSession(), new SnapshotQuery().setComponentUuid(componentUuid).setIsLast(false).setStatus(SnapshotDto.STATUS_UNPROCESSED)); assertThat(projectSnapshots).hasSize(1); return projectSnapshots.get(0); }
private SnapshotDto getUnprocessedSnapshot(String componentUuid) { List<SnapshotDto> projectSnapshots = dbClient.snapshotDao().selectAnalysesByQuery(dbTester.getSession(), new SnapshotQuery().setComponentUuid(componentUuid).setIsLast(false).setStatus(SnapshotDto.STATUS_UNPROCESSED)); assertThat(projectSnapshots).hasSize(1); return projectSnapshots.get(0); }
@Test public void select_snapshot_by_query() { db.prepareDbUnit(getClass(), "select_snapshots_by_query.xml"); assertThat(underTest.selectAnalysesByQuery(db.getSession(), new SnapshotQuery().setComponentUuid("ABCD").setIsLast(true))).isNotNull(); assertThat(underTest.selectAnalysisByQuery(db.getSession(), new SnapshotQuery().setComponentUuid("UNKOWN"))).isNull(); assertThat(underTest.selectAnalysisByQuery(db.getSession(), new SnapshotQuery().setComponentUuid("GHIJ"))).isNull(); }
@CheckForNull private SnapshotDto findFirstSnapshot(DbSession session, SnapshotQuery query) { List<SnapshotDto> snapshots = dbClient.snapshotDao().selectAnalysesByQuery(session, query); if (!snapshots.isEmpty()) { return snapshots.get(0); } return null; }
@CheckForNull private Period findByDays(int days) { List<SnapshotDto> snapshots = dbClient.snapshotDao().selectAnalysesByQuery(session, createCommonQuery(projectUuid).setCreatedBefore(analysisDate).setSort(BY_DATE, ASC)); long targetDate = DateUtils.addDays(new Date(analysisDate), -days).getTime(); SnapshotDto snapshot = findNearestSnapshotToTargetDate(snapshots, targetDate); if (snapshot == null) { return null; } LOG.debug("Compare over {} days ({}, analysis of {})", String.valueOf(days), formatDate(targetDate), formatDate(snapshot.getCreatedAt())); return new Period(LEAK_PERIOD_MODE_DAYS, String.valueOf(days), snapshot.getCreatedAt(), snapshot.getUuid()); }