diff --git a/src/main/java/net/geant/nmaas/portal/persistent/repositories/AppInstanceRepository.java b/src/main/java/net/geant/nmaas/portal/persistent/repositories/AppInstanceRepository.java index 3002af2e17a43f61ef9bb1fcfb515436054de9d5..a502ee89db7b1e874753ce4fd667b1f2904ebce2 100644 --- a/src/main/java/net/geant/nmaas/portal/persistent/repositories/AppInstanceRepository.java +++ b/src/main/java/net/geant/nmaas/portal/persistent/repositories/AppInstanceRepository.java @@ -49,14 +49,14 @@ public interface AppInstanceRepository extends JpaRepository<AppInstance, Long> @Query("select count(ai.id) FROM AppInstance ai where ai.createdAt >= :sinceTime") int countAllDeployedSinceTime(@Param("sinceTime") long sinceTime); - @Query("select count(ai.id) FROM AppInstance ai where ai.createdAt >= :sinceTime AND ai.createdAt <= :endTime") - int countAllDeployedSinceTime(@Param("sinceTime") long sinceTime, @Param("sinceTime") long toTime); + @Query("select count(ai.id) FROM AppInstance ai where ai.createdAt >= :sinceTime AND ai.createdAt < :endTime") + int countAllDeployedSinceTime(@Param("sinceTime") long sinceTime, @Param("endTime") long endTime); @Query("select count(ai.id) FROM AppInstance ai JOIN AppDeployment ad on ad.deploymentId = ai.internalId where ai.application.name = ?1") int countByName(String name); @Query("select ai FROM AppInstance ai where ai.createdAt >= :sinceTime AND ai.createdAt <= :endTime") - List<AppInstance> findAllInTimePeriod(@Param("sinceTime") long start, @Param("endTime") long end); + List<AppInstance> findAllInTimePeriod(@Param("sinceTime") long start, @Param("endTime") long endTime); int countAllByOwner(User user); diff --git a/src/main/java/net/geant/nmaas/portal/service/impl/DashboardServiceImpl.java b/src/main/java/net/geant/nmaas/portal/service/impl/DashboardServiceImpl.java index 420bf728bc72fac8b601463b616f1e3c4c739945..cca48c62dc6c68f7cc19a4c84b83e7af4d8cbca5 100644 --- a/src/main/java/net/geant/nmaas/portal/service/impl/DashboardServiceImpl.java +++ b/src/main/java/net/geant/nmaas/portal/service/impl/DashboardServiceImpl.java @@ -49,8 +49,10 @@ public class DashboardServiceImpl implements DashboardService { @Override public DashboardView getSystemDashboard(OffsetDateTime startDate, OffsetDateTime endDate) { - long startTimeStamp = System.currentTimeMillis() - startDate.toEpochSecond(); - long endTimeStamp = System.currentTimeMillis() - endDate.toEpochSecond(); + log.warn("Start date {} / end date {}", startDate, endDate); + + long startTimeStamp = startDate.toEpochSecond(); + long endTimeStamp = endDate.toEpochSecond(); List<String> baseNames = applicationBaseRepository.findAllNames(); @@ -68,7 +70,8 @@ public class DashboardServiceImpl implements DashboardService { //filter not deployed application applicationDeploymentCountPerName.entrySet().removeIf(app -> app.getValue() == 0); - + log.warn("Start stamp {} / end stamp {}", startTimeStamp, endTimeStamp); + log.warn("Result: {}", appInstanceRepo.countAllDeployedSinceTime(startTimeStamp, endTimeStamp)); return DashboardView.builder() .domainsCount(domainRepository.count()) diff --git a/src/test/java/net/geant/nmaas/portal/service/impl/DashboardServiceImplTest.java b/src/test/java/net/geant/nmaas/portal/service/impl/DashboardServiceImplTest.java index ae02141d1f25687a9ab34e683cac3d4ba49930cb..0899132632db450e76bbecf4a9477aebd1ce8549 100644 --- a/src/test/java/net/geant/nmaas/portal/service/impl/DashboardServiceImplTest.java +++ b/src/test/java/net/geant/nmaas/portal/service/impl/DashboardServiceImplTest.java @@ -158,4 +158,45 @@ void getSystemDashboardShouldCalculateCorrectTimestamps() { assert endTimestamp > 0; assert startTimestamp > endTimestamp; } + + @Test + void countAllDeployedSinceTimeShouldReturnCorrectCount() { + long sinceTime = 1000L; + long toTime = 2000L; + int expectedCount = 7; + + when(appInstanceRepo.countAllDeployedSinceTime(sinceTime, toTime)).thenReturn(expectedCount); + + int actualCount = appInstanceRepo.countAllDeployedSinceTime(sinceTime, toTime); + + assert actualCount == expectedCount; + org.mockito.Mockito.verify(appInstanceRepo).countAllDeployedSinceTime(sinceTime, toTime); + } + + @Test + void getSystemDashboardShouldCallCountAllDeployedSinceTimeWithCorrectArguments() { + OffsetDateTime startDate = OffsetDateTime.now().minusDays(2); + OffsetDateTime endDate = OffsetDateTime.now(); + + when(domainRepository.count()).thenReturn(1L); + when(userRepository.count()).thenReturn(1L); + when(appInstanceRepo.count()).thenReturn(1L); + when(appInstanceRepo.countAllDeployedSinceTime(org.mockito.ArgumentMatchers.anyLong(), org.mockito.ArgumentMatchers.anyLong())).thenReturn(5); + when(applicationBaseRepository.findAllNames()).thenReturn(Collections.emptyList()); + when(appInstanceRepo.findAllInTimePeriod(org.mockito.ArgumentMatchers.anyLong(), org.mockito.ArgumentMatchers.anyLong())).thenReturn(Collections.emptyList()); + + dashboardService.getSystemDashboard(startDate, endDate); + + ArgumentCaptor<Long> sinceCaptor = ArgumentCaptor.forClass(Long.class); + ArgumentCaptor<Long> toCaptor = ArgumentCaptor.forClass(Long.class); + + org.mockito.Mockito.verify(appInstanceRepo).countAllDeployedSinceTime(sinceCaptor.capture(), toCaptor.capture()); + + long sinceTime = sinceCaptor.getValue(); + long toTime = toCaptor.getValue(); + + assert sinceTime > 0; + assert toTime > 0; + assert sinceTime < toTime; + } }