Pull request #188: RED-3011 - DossierTemplate Stat

Merge in RED/persistence-service from bugfix/RED-3011 to master

* commit '4dedbf2bfd356fe094352e9f3f2615969a204142':
  RED-3011 - DossierTemplate Stat
This commit is contained in:
Corina Olariu 2022-01-18 14:34:45 +01:00 committed by Timo Bejan
commit b30596e8b4
2 changed files with 32 additions and 10 deletions

View File

@ -34,7 +34,13 @@ public class DossierTemplateStatsService {
new DossierTemplateStats(e.getKey(), 0, new ArrayList<>()):
new DossierTemplateStats(e.getKey(), e.getValue().size(), e.getValue()))
.collect(Collectors.toList());
// add the dossier templates with no dictionaries but with dossiers
Set<String> dossierTemplatesIdsFounded = dossierTemplateStatsList.stream().map(DossierTemplateStats::getDossierTemplateId).collect(Collectors.toSet());
dossierTemplateIds.removeAll(dossierTemplatesIdsFounded);
List<DossierTemplateStats> dossierTemplateStatsListForDossierNotFound = dossierTemplateIds.stream()
.map(e -> new DossierTemplateStats(e, 0, new ArrayList<>())).collect(Collectors.toList());
dossierTemplateStatsList.addAll(dossierTemplateStatsListForDossierNotFound);
return dossierTemplateStatsList;
}

View File

@ -47,6 +47,21 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe
var dossier = dossierTesterAndProvider.provideTestDossier();
var addedType1 = dictionaryClient.addType(Type.builder()
.type("type dossier")
.label("Dossier Redactions")
.hexColor("#fcba03")
.rank(100)
.description("Something")
.addToDictionaryAction(false)
.dossierTemplateId(dossier.getDossierTemplateId())
.dossierId(dossier.getId())
.build());
assertThat(addedType1).isNotNull();
var dossierTemplate2 = provideTestTemplate("dossierTemp2");
var addedType = dictionaryClient.addType(Type.builder()
.type(TYPE_ID_1)
.label("Dossier Redactions")
@ -54,7 +69,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe
.rank(100)
.description("Something")
.addToDictionaryAction(false)
.dossierTemplateId(dossier.getDossierTemplateId())
.dossierTemplateId(dossierTemplate2.getId())
.dossierId(null)
.build());
@ -74,7 +89,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe
.rank(102)
.description("Something")
.addToDictionaryAction(false)
.dossierTemplateId(dossier.getDossierTemplateId())
.dossierTemplateId(dossierTemplate2.getId())
.dossierId(null)
.build());
var entries2 = new ArrayList<String>();
@ -86,7 +101,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe
entryList = dictionaryClient.getEntriesForType(addedType2.getTypeId());
assertThat(entryList.size()).isEqualTo(entries2.size());
var dossierTemplate2 = provideTestTemplate("dossierTemp2");
var dossierTemplate3 = provideTestTemplate("dossierTemp3");
var addedType3 = dictionaryClient.addType(Type.builder()
.type(TYPE_ID_3)
.label("Dossier Redactions 3")
@ -94,7 +109,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe
.rank(100)
.description("Something")
.addToDictionaryAction(false)
.dossierTemplateId(dossierTemplate2.getId())
.dossierTemplateId(dossierTemplate3.getId())
.dossierId(null)
.build());
@ -107,26 +122,27 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe
entryList = dictionaryClient.getEntriesForType(addedType3.getTypeId());
assertThat(entryList.size()).isEqualTo(entries3.size());
var dossierTemplate3 = provideTestTemplate("dossierTemp3");
var dossierTemplate4 = provideTestTemplate("dossierTemp4");
Set<String> dossierTemplateIds = new HashSet<>();
dossierTemplateIds.add(dossier.getDossierTemplateId());
dossierTemplateIds.add(dossierTemplate2.getId());
dossierTemplateIds.add(dossierTemplate3.getId());
dossierTemplateIds.add(dossierTemplate4.getId());
List<DossierTemplateStats> dossierTemplateStatsList = dossierTemplateStatsClient.getDossierTemplateStats(dossierTemplateIds);
assertThat(dossierTemplateStatsList.size()).isEqualTo(dossierTemplateIds.size());
DossierTemplateStats dossierTemplateStats1 = dossierTemplateStatsList.stream().filter(d -> d.getDossierTemplateId().equals(dossier.getDossierTemplateId())).findAny().get();
DossierTemplateStats dossierTemplateStats1 = dossierTemplateStatsList.stream().filter(d -> d.getDossierTemplateId().equals(dossierTemplate2.getId())).findAny().get();
assertThat(dossierTemplateStats1.getDossierTemplateId()).isEqualTo(dossier.getDossierTemplateId());
assertThat(dossierTemplateStats1.getDossierTemplateId()).isEqualTo(dossierTemplate2.getId());
assertThat(dossierTemplateStats1.getNumberOfDictionaries()).isEqualTo(2);
List<DictionarySummary> dictionarySummaryList = dossierTemplateStats1.getDictionarySummaryList();
assertThat(dictionarySummaryList.stream().filter(d -> d.getType().equals(TYPE_ID_1)).findAny().get().getEntriesCount()).isEqualTo(entries1.size());
assertThat(dictionarySummaryList.stream().filter(d -> d.getType().equals(TYPE_ID_2)).findAny().get().getEntriesCount()).isEqualTo(entries2.size());
// dossier template with no type
DossierTemplateStats dossierTemplateStats3 = dossierTemplateStatsList.stream().filter(d -> d.getDossierTemplateId().equals(dossierTemplate3.getId())).findAny().get();
assertThat(dossierTemplateStats3.getDossierTemplateId()).isEqualTo(dossierTemplate3.getId());
DossierTemplateStats dossierTemplateStats3 = dossierTemplateStatsList.stream().filter(d -> d.getDossierTemplateId().equals(dossierTemplate4.getId())).findAny().get();
assertThat(dossierTemplateStats3.getDossierTemplateId()).isEqualTo(dossierTemplate4.getId());
assertThat(dossierTemplateStats3.getNumberOfDictionaries()).isZero();
// delete some entries, stats should be updated
@ -137,7 +153,7 @@ public class DossierTemplateStatsTest extends AbstractPersistenceServerServiceTe
dossierTemplateStatsList = dossierTemplateStatsClient.getDossierTemplateStats(dossierTemplateIds);
assertThat(dossierTemplateStatsList.size()).isEqualTo(dossierTemplateIds.size());
DossierTemplateStats dossierTemplateStats2 = dossierTemplateStatsList.stream().filter(d -> d.getDossierTemplateId().equals(dossier.getDossierTemplateId())).findAny().get();
DossierTemplateStats dossierTemplateStats2 = dossierTemplateStatsList.stream().filter(d -> d.getDossierTemplateId().equals(dossierTemplate2.getId())).findAny().get();
dictionarySummaryList = dossierTemplateStats2.getDictionarySummaryList();
assertThat(dictionarySummaryList.stream().filter(d -> d.getType().equals(TYPE_ID_2)).findAny().get().getEntriesCount()).isEqualTo(entries2.size() - entries22.size());