more tests

This commit is contained in:
Timo Bejan 2021-09-20 10:29:28 +03:00
parent 2496d39d11
commit 317c93ff71
12 changed files with 206 additions and 13 deletions

View File

@ -1,5 +1,7 @@
package com.iqser.red.service.persistence.service.v1.api.model.data.configuration;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -8,6 +10,8 @@ import javax.persistence.*;
@Data
@NoArgsConstructor
@Entity
@AllArgsConstructor
@Builder
@Table(name = "legal_basis")
public class LegalBasis {
@ -21,8 +25,5 @@ public class LegalBasis {
@Column
private String reason;
@ManyToOne
private LegalBasisMapping legalBasisMapping;
}

View File

@ -18,7 +18,7 @@ public class LegalBasisMapping {
@Column
private long version;
@OneToMany(mappedBy = "legalBasisMapping", cascade = CascadeType.ALL)
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<LegalBasis> legalBasis = new ArrayList<>();
}

View File

@ -10,6 +10,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
@Slf4j
@Service
@RequiredArgsConstructor
@ -48,6 +50,7 @@ public class DigitalSignatureService {
}
@Transactional
public void updateDigitalSignature(DigitalSignature digitalSignatureModel) {
digitalSignatureRepository.findById(DigitalSignature.ID).ifPresentOrElse(digitalSignature -> {

View File

@ -1,5 +1,6 @@
package com.iqser.red.service.peristence.v1.server.controller;
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
import com.iqser.red.service.persistence.management.v1.processor.service.persistence.repository.LegalBasisMappingRepository;
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.LegalBasis;
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.LegalBasisMapping;
@ -9,6 +10,7 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.transaction.Transactional;
import java.util.List;
@ -21,6 +23,7 @@ public class LegalBasisMappingController implements LegalBasisMappingResource {
@Override
@Transactional
public void setLegalBasisMapping(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId, @RequestBody List<LegalBasis> legalBasisMapping) {
legalBasisMappingRepository.findById(dossierTemplateId).ifPresentOrElse((lbm) -> {
@ -31,19 +34,20 @@ public class LegalBasisMappingController implements LegalBasisMappingResource {
var lbm = new LegalBasisMapping();
lbm.setDossierTemplateId(dossierTemplateId);
lbm.setLegalBasis(legalBasisMapping);
lbm.setVersion(0);
lbm.setVersion(1);
legalBasisMappingRepository.save(lbm);
});
}
@Override
@Transactional
public List<LegalBasis> getLegalBasisMapping(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId) {
return legalBasisMappingRepository.findById(dossierTemplateId).get().getLegalBasis();
return legalBasisMappingRepository.findById(dossierTemplateId).map(LegalBasisMapping::getLegalBasis).orElseThrow(() -> new NotFoundException("Legal Basis Not configured!"));
}
@Override
public long getVersion(@PathVariable(DOSSIER_TEMPLATE_PARAMETER_NAME) String dossierTemplateId) {
return legalBasisMappingRepository.findById(dossierTemplateId).get().getVersion();
return legalBasisMappingRepository.findById(dossierTemplateId).map(LegalBasisMapping::getVersion).orElse(0l);
}
}

View File

@ -0,0 +1,8 @@
package com.iqser.red.service.peristence.v1.server.integration.client;
import com.iqser.red.service.persistence.service.v1.api.resources.DigitalSignatureResource;
import org.springframework.cloud.openfeign.FeignClient;
@FeignClient(name = "DigitalSignatureClient", url = "http://localhost:${server.port}")
public interface DigitalSignatureClient extends DigitalSignatureResource {
}

View File

@ -0,0 +1,9 @@
package com.iqser.red.service.peristence.v1.server.integration.client;
import com.iqser.red.service.persistence.service.v1.api.resources.LegalBasisMappingResource;
import org.springframework.cloud.openfeign.FeignClient;
@FeignClient(name = "LegalBasisClient", url = "http://localhost:${server.port}")
public interface LegalBasisClient extends LegalBasisMappingResource {
}

View File

@ -0,0 +1,8 @@
package com.iqser.red.service.peristence.v1.server.integration.client;
import com.iqser.red.service.persistence.service.v1.api.resources.LicenseReportResource;
import org.springframework.cloud.openfeign.FeignClient;
@FeignClient(name = "LicenseReportClient", url = "http://localhost:${server.port}")
public interface LicenseReportClient extends LicenseReportResource {
}

View File

@ -24,8 +24,7 @@ public class TypeProvider {
type.setHint(false);
type.setRank(100);
type.setRecommendation(false);
type.setLabel("test");
type.setCaseInsensitive(false);
type.setCaseInsensitive(true);
type.setDossierTemplateId(dossierTemplate.getId());

View File

@ -0,0 +1,50 @@
package com.iqser.red.service.peristence.v1.server.integration.tests;
import com.iqser.red.service.peristence.v1.server.integration.client.DigitalSignatureClient;
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.DigitalSignature;
import feign.FeignException;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import static org.assertj.core.api.Assertions.assertThat;
public class DigitalSignatureTest extends AbstractPersistenceServerServiceTest {
@Autowired
private DigitalSignatureClient digitalSignatureClient;
@Test
public void testDigitalSignature() {
try {
digitalSignatureClient.getDigitalSignature();
} catch (FeignException.FeignClientException e) {
assertThat(e.status()).isEqualTo(404);
}
DigitalSignature digitalSignature = new DigitalSignature();
digitalSignature.setPassword("test");
digitalSignature.setCertificateName("test");
digitalSignature.setReason("test");
digitalSignature.setLocation("test");
digitalSignature.setContactInfo("test");
digitalSignature.setPrivateKey(new byte[]{1, 2, 3, 4});
var savedDigitalSignature = digitalSignatureClient.saveDigitalSignature(digitalSignature);
var loadedSignature = digitalSignatureClient.getDigitalSignature();
// encrypted
assertThat(savedDigitalSignature.getPassword()).isNotEqualTo(loadedSignature.getPassword());
assertThat(savedDigitalSignature.getPrivateKey()).isNotEqualTo(loadedSignature.getPrivateKey());
digitalSignature.setReason("new test");
digitalSignatureClient.updateDigitalSignature(digitalSignature);
loadedSignature = digitalSignatureClient.getDigitalSignature();
assertThat(loadedSignature.getReason()).isEqualTo("new test");
}
}

View File

@ -1,5 +1,6 @@
package com.iqser.red.service.peristence.v1.server.integration.tests;
import com.google.common.collect.Sets;
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
import com.iqser.red.service.peristence.v1.server.integration.client.DossierClient;
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTesterAndProvider;
@ -42,12 +43,20 @@ public class DossierTest extends AbstractPersistenceServerServiceTest {
assertThat(loadedTemplate).isEqualTo(updated);
dossierClient.getAllDossiers().forEach(ld -> {
dossierClient.delete(ld.getId());
});
dossierClient.getAllDossiers().forEach(ld -> dossierClient.delete(ld.getId()));
assertThat(dossierClient.getAllDossiers().isEmpty()).isTrue();
assertThat(dossierClient.getAllDossiers()).isEmpty();
assertThat(dossierClient.getSoftDeletedDossiers().size()).isEqualTo(1);
dossierClient.undeleteDossiers(Sets.newHashSet(dossier.getId()));
assertThat(dossierClient.getAllDossiers()).isNotEmpty();
assertThat(dossierClient.getSoftDeletedDossiers()).isEmpty();
dossierClient.hardDeleteDossiers(Sets.newHashSet(dossier.getId()));
assertThat(dossierClient.getAllDossiers()).isEmpty();
assertThat(dossierClient.getSoftDeletedDossiers()).isEmpty();
}
}

View File

@ -0,0 +1,56 @@
package com.iqser.red.service.peristence.v1.server.integration.tests;
import com.iqser.red.service.peristence.v1.server.integration.client.LegalBasisClient;
import com.iqser.red.service.peristence.v1.server.integration.service.DossierTemplateTesterAndProvider;
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
import com.iqser.red.service.persistence.service.v1.api.model.data.configuration.LegalBasis;
import feign.FeignException;
import org.assertj.core.util.Lists;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.stream.Collectors;
import static org.assertj.core.api.Assertions.assertThat;
public class LegalBasisTest extends AbstractPersistenceServerServiceTest {
@Autowired
private DossierTemplateTesterAndProvider dossierTemplateTesterAndProvider;
@Autowired
private LegalBasisClient legalBasisClient;
@Test
public void testLegalBasis() {
var dossierTemplate = dossierTemplateTesterAndProvider.provideTestTemplate();
assertThat(legalBasisClient.getVersion(dossierTemplate.getId())).isEqualTo(0);
try {
legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
} catch (FeignException.FeignClientException e) {
assertThat(e.status()).isEqualTo(404);
}
var mappings = new ArrayList<LegalBasis>();
mappings.add(LegalBasis.builder().name("test 1").description("test 1").reason("test 1").build());
mappings.add(LegalBasis.builder().name("test 2").description("test 2").reason("test 2").build());
legalBasisClient.setLegalBasisMapping(dossierTemplate.getId(), mappings);
assertThat(legalBasisClient.getVersion(dossierTemplate.getId())).isEqualTo(1);
var mapping = legalBasisClient.getLegalBasisMapping(dossierTemplate.getId());
assertThat(mapping.size()).isEqualTo(2);
assertThat(mapping.stream().map(LegalBasis::getName).collect(Collectors.toList())).containsExactlyInAnyOrder("test 1", "test 2");
legalBasisClient.setLegalBasisMapping(dossierTemplate.getId(), Lists.newArrayList());
assertThat(legalBasisClient.getLegalBasisMapping(dossierTemplate.getId())).isEmpty();
assertThat(legalBasisClient.getVersion(dossierTemplate.getId())).isEqualTo(2);
}
}

View File

@ -0,0 +1,46 @@
package com.iqser.red.service.peristence.v1.server.integration.tests;
import com.iqser.red.service.peristence.v1.server.integration.client.LicenseReportClient;
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.service.FileTesterAndProvider;
import com.iqser.red.service.peristence.v1.server.integration.utils.AbstractPersistenceServerServiceTest;
import com.iqser.red.service.persistence.service.v1.api.model.LicenseReportRequest;
import org.assertj.core.util.Lists;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import java.time.OffsetDateTime;
import static org.assertj.core.api.Assertions.assertThat;
public class LicenseReportTest extends AbstractPersistenceServerServiceTest {
@Autowired
private DossierTemplateTesterAndProvider dossierTemplateTesterAndProvider;
@Autowired
private LicenseReportClient licenseReportClient;
@Autowired
private FileTesterAndProvider fileTesterAndProvider;
@Autowired
private DossierTesterAndProvider dossierTesterAndProvider;
@Test
public void testLicenseReport() {
var dossier = dossierTesterAndProvider.provideTestDossier();
fileTesterAndProvider.testAndProvideFile(dossier);
LicenseReportRequest request = new LicenseReportRequest();
request.setDossierIds(Lists.newArrayList(dossier.getId()));
request.setStartDate(OffsetDateTime.now().minusHours(10).toInstant());
request.setEndDate(OffsetDateTime.now().plusHours(10).toInstant());
request.setRequestId("123");
assertThat(licenseReportClient.getLicenseReport(request, 0, 20)).isNotNull();
}
}