RED-7326 - UT
This commit is contained in:
parent
2ef28d8ecb
commit
2e7ca928ee
@ -2,11 +2,10 @@ package com.iqser.red.service.peristence.v1.server.integration.tests;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.OffsetDateTime;
|
||||
import java.time.temporal.ChronoUnit;
|
||||
import java.util.stream.Collectors;
|
||||
import java.time.ZoneId;
|
||||
|
||||
import org.assertj.core.util.Lists;
|
||||
import org.junit.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
@ -15,7 +14,10 @@ import com.iqser.red.service.peristence.v1.server.integration.service.DossierTem
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.service.FileTesterAndProvider;
|
||||
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierRepository;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.FileRepository;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.Dossier;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.file.FileModel;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.license.LicenseReport;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.license.LicenseReportRequest;
|
||||
|
||||
@ -35,43 +37,104 @@ public class LicenseReportTest extends AbstractPersistenceServerServiceTest {
|
||||
@Autowired
|
||||
private DossierTesterAndProvider dossierTesterAndProvider;
|
||||
|
||||
@Autowired
|
||||
private FileRepository fileRepository;
|
||||
|
||||
@Autowired
|
||||
private DossierRepository dossierRepository;
|
||||
|
||||
|
||||
@Test
|
||||
public void testLicenseReport() {
|
||||
|
||||
var template = dossierTemplateTesterAndProvider.provideTestTemplate();
|
||||
|
||||
var dossier1 = dossierTesterAndProvider.provideTestDossier(template, "Dossier1");
|
||||
var lastYearDossier = dossierTesterAndProvider.provideTestDossier(template, "lastYearDossier");
|
||||
addFileOnDate(lastYearDossier, "2022-01-01T10:00:00Z");
|
||||
addFileOnDate(lastYearDossier, "2022-01-02T10:00:00Z");
|
||||
|
||||
var file1 = fileTesterAndProvider.testAndProvideFile(dossier1, "test1.pdf");
|
||||
var file2 = fileTesterAndProvider.testAndProvideFile(dossier1, "test2.pdf");
|
||||
var januaryDossier = dossierTesterAndProvider.provideTestDossier(template, "januaryDossier");
|
||||
var januaryFile1 = addFileOnDate(januaryDossier, "2023-01-01T10:00:00Z");
|
||||
addFileOnDate(januaryDossier, "2023-01-02T10:00:00Z");
|
||||
|
||||
var dossier2 = dossierTesterAndProvider.provideTestDossier(template, "Dossier2");
|
||||
var februaryDossier = dossierTesterAndProvider.provideTestDossier(template, "februaryDossier");
|
||||
addFileOnDate(februaryDossier, "2023-02-01T10:00:00Z");
|
||||
addFileOnDate(februaryDossier, "2023-02-02T10:00:00Z");
|
||||
|
||||
var file3 = fileTesterAndProvider.testAndProvideFile(dossier2, "test3.pdf");
|
||||
var file4 = fileTesterAndProvider.testAndProvideFile(dossier2, "test4.pdf");
|
||||
var marchDossier = dossierTesterAndProvider.provideTestDossier(template, "marchDossier");
|
||||
addFileOnDate(marchDossier, "2023-03-01T10:00:00Z");
|
||||
addFileOnDate(marchDossier, "2023-03-02T10:00:00Z");
|
||||
|
||||
var dossiers = Lists.newArrayList(dossier1, dossier2);
|
||||
var files = Lists.newArrayList(file1, file2, file3, file4);
|
||||
var aprilDossier = dossierTesterAndProvider.provideTestDossier(template, "aprilDossier");
|
||||
addFileOnDate(aprilDossier, "2023-04-01T10:00:00Z");
|
||||
addFileOnDate(aprilDossier, "2023-04-02T10:00:00Z");
|
||||
|
||||
LicenseReportRequest request = new LicenseReportRequest();
|
||||
request.setDossierIds(dossiers.stream().map(Dossier::getId).collect(Collectors.toList()));
|
||||
softDeleteFile(januaryFile1.getId(), "2023-02-01T10:00:00Z");
|
||||
|
||||
var startDate = OffsetDateTime.now().minusHours(10).toInstant().truncatedTo(ChronoUnit.MILLIS);
|
||||
request.setStartDate(startDate);
|
||||
hardDeleteFile(januaryFile1.getId(), "2023-03-01T10:00:00Z");
|
||||
|
||||
var endDate = OffsetDateTime.now().plusHours(10).toInstant().truncatedTo(ChronoUnit.MILLIS);
|
||||
request.setEndDate(endDate);
|
||||
archiveDossier(februaryDossier.getId(), "2023-05-01T10:00:00Z");
|
||||
|
||||
String requestId = "123";
|
||||
request.setRequestId(requestId);
|
||||
LicenseReport licenseReport = licenseReportClient.getLicenseReport(LicenseReportRequest.builder()
|
||||
.startDate(Instant.parse("2023-01-01T10:00:00Z"))
|
||||
.endDate(Instant.parse("2023-05-01T11:00:00Z"))
|
||||
.build());
|
||||
|
||||
LicenseReport licenseReport = licenseReportClient.getLicenseReport(request);
|
||||
assertThat(licenseReport.getTotalFilesUploadedBytes()).isEqualTo(900L);
|
||||
assertThat(licenseReport.getActiveFilesUploadedBytes()).isEqualTo(700L);
|
||||
assertThat(licenseReport.getArchivedFilesUploadedBytes()).isEqualTo(200L);
|
||||
assertThat(licenseReport.getTrashFilesUploadedBytes()).isEqualTo(0L);
|
||||
|
||||
assertThat(licenseReport.getNumberOfDossiers()).isEqualTo(dossiers.size());
|
||||
assertThat(licenseReport.getNumberOfAnalyzedFiles()).isEqualTo(files.size());
|
||||
assertThat(licenseReport.getStartDate()).isEqualTo(startDate);
|
||||
assertThat(licenseReport.getEndDate()).isEqualTo(endDate);
|
||||
assertThat(licenseReport.getMonthlyData().size()).isEqualTo(5);
|
||||
assertThat(licenseReport.getMonthlyData().get(1).getTrashFilesUploadedBytes()).isEqualTo(100L);
|
||||
assertThat(licenseReport.getMonthlyData().get(2).getTrashFilesUploadedBytes()).isEqualTo(0L);
|
||||
}
|
||||
|
||||
|
||||
private FileModel addFileOnDate(Dossier dossier, String date) {
|
||||
|
||||
var file = fileTesterAndProvider.testAndProvideFile(dossier, date + ".pdf");
|
||||
setAdded(file.getId(), date);
|
||||
return file;
|
||||
}
|
||||
|
||||
|
||||
private void setAdded(String fileId, String date) {
|
||||
|
||||
fileRepository.findById(fileId).ifPresent((file) -> {
|
||||
|
||||
file.setAdded(OffsetDateTime.ofInstant(Instant.parse(date), ZoneId.of("Z")));
|
||||
file.setFileSize(100L);
|
||||
fileRepository.saveAndFlush(file);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private void archiveDossier(String dossierId, String date) {
|
||||
|
||||
dossierRepository.findById(dossierId).ifPresent((dossier) -> {
|
||||
dossier.setArchivedTime(OffsetDateTime.ofInstant(Instant.parse(date), ZoneId.of("Z")));
|
||||
dossierRepository.saveAndFlush(dossier);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private void softDeleteFile(String fileId, String date) {
|
||||
|
||||
fileRepository.findById(fileId).ifPresent((file) -> {
|
||||
file.setDeleted(OffsetDateTime.ofInstant(Instant.parse(date), ZoneId.of("Z")));
|
||||
fileRepository.saveAndFlush(file);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private void hardDeleteFile(String fileId, String date) {
|
||||
|
||||
fileRepository.findById(fileId).ifPresent((file) -> {
|
||||
file.setHardDeletedTime(OffsetDateTime.ofInstant(Instant.parse(date), ZoneId.of("Z")));
|
||||
fileRepository.saveAndFlush(file);
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user