Pull request #216: RED-3240 - Dossier Status
Merge in RED/persistence-service from feature/RED-3240_1 to master * commit 'f493166bcc2143e184e2995262c4606789558080': RED-3240 - Dossier Status
This commit is contained in:
commit
4622d5f858
@ -50,10 +50,8 @@ public class DossierStatusPersistenceService {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public List<DossierStatusInfo> getAllDossierStatusForTemplate(String dossierTemplateId) {
|
||||
var x = dossierStatusRepository.getAllDossierStatusForDossierTemplate(dossierTemplateId);
|
||||
return x;
|
||||
return dossierStatusRepository.getAllDossierStatusForDossierTemplate(dossierTemplateId);
|
||||
}
|
||||
|
||||
public DossierStatusInfo getDossierStatusInfo(String dossierStatusId) {
|
||||
@ -75,7 +73,7 @@ public class DossierStatusPersistenceService {
|
||||
|
||||
DossierStatusEntity replaceDossierStatusEntity = null;
|
||||
if (replaceDossierStatusId != null) {
|
||||
replaceDossierStatusEntity = dossierStatusRepository.findById(replaceDossierStatusId).orElseThrow(() -> new NotFoundException("Dossier Status not found: " + replaceDossierStatusId));
|
||||
replaceDossierStatusEntity = dossierStatusRepository.findById(replaceDossierStatusId).orElseThrow(() -> new NotFoundException(String.format(DOSSIER_STATUS_NOT_FOUND_MESSAGE, replaceDossierStatusId)));
|
||||
}
|
||||
|
||||
if (replaceDossierStatusEntity != null && !replaceDossierStatusEntity.getDossierTemplateId().equals(toDeleteDossierStatus.getDossierTemplateId())) {
|
||||
@ -89,7 +87,7 @@ public class DossierStatusPersistenceService {
|
||||
dossierStatusRepository.deleteById(dossierStatusId);
|
||||
}
|
||||
|
||||
public void validateDossierTemplateNameIsUnique(String dossierStatusName, String dossierTemplateId, String dossierStatusId) {
|
||||
private void validateDossierTemplateNameIsUnique(String dossierStatusName, String dossierTemplateId, String dossierStatusId) {
|
||||
getAllDossierStatusForTemplate(dossierTemplateId).forEach(existing -> {
|
||||
if (existing.getName().equals(dossierStatusName) && !existing.getId().equals(dossierStatusId)) {
|
||||
throw new ConflictException("DossierStatus name must be unique within the same dossier template");
|
||||
|
||||
@ -15,6 +15,6 @@ public interface DossierStatusRepository extends JpaRepository<DossierStatusEnti
|
||||
List<DossierStatusInfo> getAllDossierStatusForDossierTemplate(String dossierTemplateId);
|
||||
|
||||
@Query("select new com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.DossierStatusInfo(s.id, s.name," +
|
||||
"s.description, s.color, s.dossierTemplateId, count(d)) from DossierStatusEntity s left outer join s.dossiers d where s.id = :dossierStatusId")
|
||||
"s.description, s.color, s.dossierTemplateId, count(d)) from DossierStatusEntity s left outer join s.dossiers d where s.id = :dossierStatusId group by s")
|
||||
Optional<DossierStatusInfo> findProjectionById(String dossierStatusId);
|
||||
}
|
||||
|
||||
@ -5,8 +5,11 @@ import com.iqser.red.service.peristence.v1.server.integration.client.DossierStat
|
||||
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.exception.BadRequestException;
|
||||
import com.iqser.red.service.persistence.management.v1.processor.exception.NotFoundException;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierRequest;
|
||||
import com.iqser.red.service.persistence.service.v1.api.model.dossiertemplate.dossier.CreateOrUpdateDossierStatusRequest;
|
||||
import feign.FeignException;
|
||||
import org.junit.Test;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@ -35,6 +38,7 @@ public class DossierStatusTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
assertThat(allDossierStatus.size()).isZero();
|
||||
|
||||
// Create
|
||||
CreateOrUpdateDossierStatusRequest crudsr = new CreateOrUpdateDossierStatusRequest();
|
||||
crudsr.setName("name1");
|
||||
crudsr.setDescription("description1");
|
||||
@ -42,34 +46,83 @@ public class DossierStatusTest extends AbstractPersistenceServerServiceTest {
|
||||
|
||||
var loadedDossierStatus = dossierStatusClient.createOrUpdateDossierStatus(crudsr);
|
||||
assertThat(loadedDossierStatus).isNotNull();
|
||||
assertThat(loadedDossierStatus.getDossierCount()).isNull();
|
||||
|
||||
// update
|
||||
crudsr.setDossierStatusId(loadedDossierStatus.getId());
|
||||
crudsr.setDescription("New Description");
|
||||
var updatedStatus = dossierStatusClient.createOrUpdateDossierStatus(crudsr);
|
||||
assertThat(updatedStatus).isNotNull();
|
||||
assertThat(updatedStatus.getDescription()).isEqualTo(crudsr.getDescription());
|
||||
assertThat(updatedStatus.getDossierCount()).isNull();
|
||||
|
||||
// get all for template id
|
||||
allDossierStatus = dossierStatusClient.getAllDossierStatusForTemplate(dossierTemplate.getId());
|
||||
assertThat(allDossierStatus.size()).isEqualTo(1);
|
||||
assertThat(allDossierStatus.get(0).getDossierCount()).isZero();
|
||||
|
||||
var testDossier = dossierTesterAndProvider.provideTestDossier(dossierTemplate, "1", allDossierStatus.iterator().next());
|
||||
|
||||
assertThat(testDossier.getDossierStatusId()).isEqualTo(allDossierStatus.iterator().next().getId());
|
||||
|
||||
// update
|
||||
CreateOrUpdateDossierRequest cru = new CreateOrUpdateDossierRequest();
|
||||
BeanUtils.copyProperties(testDossier, cru);
|
||||
cru.setDossierTemplateId(testDossier.getDossierTemplateId());
|
||||
cru.setDossierStatusId(null);
|
||||
updatedStatus = dossierStatusClient.getDossierStatus(loadedDossierStatus.getId());
|
||||
assertThat(updatedStatus.getDossierCount()).isEqualTo(1);
|
||||
|
||||
allDossierStatus = dossierStatusClient.getAllDossierStatusForTemplate(dossierTemplate.getId());
|
||||
assertThat(allDossierStatus.size()).isEqualTo(1);
|
||||
|
||||
assertThat(allDossierStatus.iterator().next().getDossierCount()).isEqualTo(1);
|
||||
|
||||
|
||||
// update dossier with dossier status null
|
||||
CreateOrUpdateDossierRequest cru = new CreateOrUpdateDossierRequest();
|
||||
BeanUtils.copyProperties(testDossier, cru);
|
||||
cru.setDossierTemplateId(testDossier.getDossierTemplateId());
|
||||
cru.setDossierStatusId(null);
|
||||
var updated = dossierClient.updateDossier(cru, testDossier.getId());
|
||||
assertThat(updated.getDossierStatusId()).isNull();
|
||||
|
||||
updatedStatus = dossierStatusClient.getDossierStatus(loadedDossierStatus.getId());
|
||||
assertThat(updatedStatus.getDossierCount()).isZero();
|
||||
|
||||
// Create
|
||||
CreateOrUpdateDossierStatusRequest crudsr2 = new CreateOrUpdateDossierStatusRequest();
|
||||
crudsr2.setName("name2");
|
||||
crudsr2.setDescription("description2");
|
||||
crudsr2.setDossierTemplateId(dossierTemplate.getId());
|
||||
|
||||
// create second dossier status
|
||||
var loadedDossierStatus2 = dossierStatusClient.createOrUpdateDossierStatus(crudsr2);
|
||||
assertThat(loadedDossierStatus2).isNotNull();
|
||||
allDossierStatus = dossierStatusClient.getAllDossierStatusForTemplate(dossierTemplate.getId());
|
||||
assertThat(allDossierStatus.size()).isEqualTo(2);
|
||||
|
||||
//delete first status with itself
|
||||
try {
|
||||
dossierStatusClient.deleteDossierStatus(loadedDossierStatus.getId(),loadedDossierStatus.getId());
|
||||
} catch (FeignException e) {
|
||||
assertThat(e.status()).isEqualTo(400);
|
||||
}
|
||||
//delete with unknown status
|
||||
try {
|
||||
dossierStatusClient.deleteDossierStatus(loadedDossierStatus.getId(), "unknown");
|
||||
} catch (FeignException e) {
|
||||
assertThat(e.status()).isEqualTo(404);
|
||||
}
|
||||
|
||||
// update dossier with dossier status
|
||||
CreateOrUpdateDossierRequest cru2 = new CreateOrUpdateDossierRequest();
|
||||
BeanUtils.copyProperties(testDossier, cru2);
|
||||
cru2.setDossierTemplateId(testDossier.getDossierTemplateId());
|
||||
cru2.setDossierStatusId(loadedDossierStatus.getId());
|
||||
updated = dossierClient.updateDossier(cru2, testDossier.getId());
|
||||
assertThat(updated.getDossierStatusId()).isNotNull();
|
||||
//delete and replace
|
||||
dossierStatusClient.deleteDossierStatus(loadedDossierStatus.getId(), loadedDossierStatus2.getId());
|
||||
allDossierStatus = dossierStatusClient.getAllDossierStatusForTemplate(dossierTemplate.getId());
|
||||
assertThat(allDossierStatus.size()).isEqualTo(1);
|
||||
assertThat(allDossierStatus.get(0).getDossierCount()).isEqualTo(1);
|
||||
// check dossier has the new dossier status
|
||||
updated = dossierClient.getDossierById(updated.getId(), false, false);
|
||||
assertThat(updated.getDossierStatusId()).isEqualTo(loadedDossierStatus2.getId());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user