diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateCloneAndExportWithDuplicateRanksTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateCloneAndExportWithDuplicateRanksTest.java new file mode 100644 index 000000000..6f7c955f7 --- /dev/null +++ b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateCloneAndExportWithDuplicateRanksTest.java @@ -0,0 +1,171 @@ +package com.iqser.red.service.peristence.v1.server.integration.tests; + +import static org.mockito.Mockito.when; + +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.amqp.rabbit.core.RabbitTemplate; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +import com.iqser.red.service.persistence.management.v1.processor.entity.dossier.DossierTemplateEntity; +import com.iqser.red.service.persistence.management.v1.processor.exception.BadRequestException; +import com.iqser.red.service.persistence.management.v1.processor.service.ColorsService; +import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateCloneService; +import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateImportService; +import com.iqser.red.service.persistence.management.v1.processor.service.DossierTemplateManagementService; +import com.iqser.red.service.persistence.management.v1.processor.service.FileManagementStorageService; +import com.iqser.red.service.persistence.management.v1.processor.service.WatermarkService; +import com.iqser.red.service.persistence.management.v1.processor.service.export.DossierTemplateExportService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DictionaryPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierAttributeConfigPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierStatusPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DossierTemplatePersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DownloadStatusPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.EntryPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.FileAttributeConfigPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.LegalBasisMappingPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.ReportTemplatePersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.RulesPersistenceService; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.DossierTemplateRepository; +import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.TypeRepository; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.CloneDossierTemplateRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.importexport.ExportDownloadRequest; +import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.TypeRankSummary; +import com.iqser.red.storage.commons.service.StorageService; + +import lombok.SneakyThrows; + +//@DirtiesContext +@ExtendWith(SpringExtension.class) +public class DossierTemplateCloneAndExportWithDuplicateRanksTest { + + @MockBean + private DossierTemplateRepository dossierTemplateRepository; + @MockBean + private LegalBasisMappingPersistenceService legalBasisMappingPersistenceService; + @MockBean + private RulesPersistenceService rulesPersistenceService; + + // private DossierTemplatePersistenceService dossierTemplatePersistenceService; + @MockBean + private DossierAttributeConfigPersistenceService dossierAttributeConfigPersistenceService; + @MockBean + private DictionaryPersistenceService dictionaryPersistenceService; + @MockBean + private EntryPersistenceService entryPersistenceService; + @MockBean + private FileAttributeConfigPersistenceService fileAttributeConfigPersistenceService; + @MockBean + private ReportTemplatePersistenceService reportTemplatePersistenceService; + @MockBean + private ColorsService colorsService; + @MockBean + private StorageService storageService; + @MockBean + private DossierStatusPersistenceService dossierStatusPersistenceService; + @MockBean + private WatermarkService watermarkService; + @MockBean + private FileManagementStorageService fileManagementStorageService; + @MockBean + private DownloadStatusPersistenceService downloadStatusPersistenceService; + @MockBean + private RabbitTemplate rabbitTemplate; + @MockBean + private TypeRepository typeRepository; + + @MockBean + private DossierTemplateImportService dossierTemplateImportService; + + private DossierTemplatePersistenceService dossierTemplatePersistenceService; + private DossierTemplateCloneService dossierTemplateCloneService; + private DossierTemplateExportService dossierTemplateExportService; + + private DossierTemplateManagementService dossierTemplateManagementService; + private String dossierTemplateId = "dossierTemplateId"; + private String dossierTemplateName = "Clone of " + dossierTemplateId; + + + @BeforeEach + public void setupData() { + + dossierTemplatePersistenceService = new DossierTemplatePersistenceService(dossierTemplateRepository, + legalBasisMappingPersistenceService, + rulesPersistenceService, + dictionaryPersistenceService, + typeRepository); + dossierTemplateCloneService = new DossierTemplateCloneService(dossierTemplateRepository, + legalBasisMappingPersistenceService, + rulesPersistenceService, + dossierTemplatePersistenceService, + dossierAttributeConfigPersistenceService, + dictionaryPersistenceService, + entryPersistenceService, + fileAttributeConfigPersistenceService, + reportTemplatePersistenceService, + colorsService, + storageService, + dossierStatusPersistenceService, + watermarkService, + fileManagementStorageService); + dossierTemplateExportService = new DossierTemplateExportService(dossierTemplatePersistenceService, + downloadStatusPersistenceService, + dossierAttributeConfigPersistenceService, + dossierStatusPersistenceService, + dictionaryPersistenceService, + fileAttributeConfigPersistenceService, + legalBasisMappingPersistenceService, + rulesPersistenceService, + fileManagementStorageService, + reportTemplatePersistenceService, + colorsService, + entryPersistenceService, + watermarkService, + rabbitTemplate); + dossierTemplateManagementService = new DossierTemplateManagementService(dossierTemplateExportService, + dossierTemplateImportService, + dossierTemplatePersistenceService, + dossierTemplateCloneService); + + List typesValues = new ArrayList<>(); + TypeRankSummary typeRank1 = new TypeRankSummary(dossierTemplateId, null, 50, 2); + TypeRankSummary typeRank2 = new TypeRankSummary(dossierTemplateId, null, 100, 1); + typesValues.add(typeRank1); + typesValues.add(typeRank2); + when(dictionaryPersistenceService.getTypeRankSummaryList(dossierTemplateId)).thenReturn(typesValues); + + } + + + @Test + @SneakyThrows + public void testDownloadWithDuplicateRanks() { + + // test the export of dossier template + ExportDownloadRequest exportDownloadRequest = new ExportDownloadRequest("userId", dossierTemplateId); + Assertions.assertThrows(BadRequestException.class, () -> dossierTemplateManagementService.prepareExportDownload(exportDownloadRequest)); + + } + + + @Test + @SneakyThrows + public void testCloneDossierTemplateWithDuplicateRanks() { + + CloneDossierTemplateRequest cdtr = CloneDossierTemplateRequest.builder().name(dossierTemplateName).cloningUserId("user").ocrByDefault(true).removeWatermark(false).build(); + DossierTemplateEntity dossierTemplateEntity = new DossierTemplateEntity(); + dossierTemplateEntity.setId(dossierTemplateId); + when(dossierTemplateRepository.existsByName(cdtr.getName())).thenReturn(false); + when(dossierTemplateRepository.findById(dossierTemplateId)).thenReturn(Optional.of(dossierTemplateEntity)); + Assertions.assertThrows(BadRequestException.class, () -> dossierTemplateManagementService.cloneDossierTemplate(dossierTemplateId, cdtr)); + + } + +} diff --git a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateWithDuplicateRanksTest.java b/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateWithDuplicateRanksTest.java deleted file mode 100644 index c028a2d14..000000000 --- a/persistence-service-v1/persistence-service-server-v1/src/test/java/com/iqser/red/service/peristence/v1/server/integration/tests/DossierTemplateWithDuplicateRanksTest.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.iqser.red.service.peristence.v1.server.integration.tests; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.when; - -import java.util.ArrayList; -import java.util.List; - -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.mock.mockito.MockBean; - -import com.iqser.red.service.peristence.v1.server.integration.client.DossierTemplateClient; -import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider; -import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider; -import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest; -import com.iqser.red.service.persistence.management.v1.processor.service.persistence.DictionaryPersistenceService; -import com.iqser.red.service.persistence.service.v1.api.shared.model.DossierTemplateModel; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.CloneDossierTemplateRequest; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.dossier.Dossier; -import com.iqser.red.service.persistence.service.v1.api.shared.model.dossiertemplate.type.TypeRankSummary; - -import feign.FeignException; -import lombok.SneakyThrows; - -public class DossierTemplateWithDuplicateRanksTest extends AbstractPersistenceServerServiceTest { - - @Autowired - private DossierTesterAndProvider dossierTesterAndProvider; - - @Autowired - private DossierTemplateTesterAndProvider dossierTemplateTesterAndProvider; - - @Autowired - private DossierTemplateClient dossierTemplateClient; - - @MockBean - private DictionaryPersistenceService dictionaryPersistenceService; - - private DossierTemplateModel dossierTemplate; - private Dossier dossier; - - - @BeforeEach - public void setupData() { - - dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate(); - dossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate); - - List typesValues = new ArrayList<>(); - TypeRankSummary typeRank1 = new TypeRankSummary(dossierTemplate.getId(), dossier.getId(), 50, 2); - TypeRankSummary typeRank2 = new TypeRankSummary(dossierTemplate.getId(), dossier.getId(), 100, 1); - typesValues.add(typeRank1); - typesValues.add(typeRank2); - when(dictionaryPersistenceService.getTypeRankSummaryList(dossierTemplate.getId())).thenReturn(typesValues); - } - - - @Test - public void testDownloadWithDuplicateRanks() { - - // test the export of dossier template - Assertions.assertThrows(FeignException.BadRequest.class, () -> dossierTemplateClient.prepareExportDownload(dossierTemplate.getId())); - - } - - - @Test - @SneakyThrows - public void testCloneDossierTemplateWithDuplicateRanks() { - - var allTemplates = dossierTemplateClient.getAllDossierTemplates(); - assertThat(allTemplates.size()).isEqualTo(1); - assertThat(allTemplates.get(0)).isEqualTo(dossierTemplate); - - CloneDossierTemplateRequest cdtr = CloneDossierTemplateRequest.builder() - .name("Clone of " + dossierTemplate.getName()) - .cloningUserId("user") - .ocrByDefault(true) - .removeWatermark(false) - .build(); - Assertions.assertThrows(FeignException.BadRequest.class, () -> dossierTemplateClient.cloneDossierTemplate(dossierTemplate.getId(), cdtr)); - - } - -}