Skip to content

Commit d62a1a8

Browse files
authored
DAVE-759 (#402)
* add verkehrstart to getFahrzeugklasseAccordingChoosenFahrzeugoptions * fix tests
1 parent f9217aa commit d62a1a8

File tree

4 files changed

+71
-17
lines changed

4 files changed

+71
-17
lines changed

src/main/java/de/muenchen/dave/services/messstelle/ValidierungService.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import de.muenchen.dave.domain.dtos.messstelle.ValidateZeitraumAndTagestypForMessstelleDTO;
66
import de.muenchen.dave.domain.enums.Fahrzeugklasse;
77
import de.muenchen.dave.domain.enums.TagesTyp;
8+
import de.muenchen.dave.domain.enums.Verkehrsart;
89
import de.muenchen.dave.domain.model.messstelle.ValidateZeitraumAndTagesTypForMessstelleModel;
910
import de.muenchen.dave.services.KalendertagService;
1011
import java.math.BigDecimal;
@@ -112,17 +113,18 @@ public List<ReadMessfaehigkeitDTO> getRelevantMessfaehigkeitenAccordingFahrzeugk
112113
* Gibt für die gegebenen Fahrzeugoptions auf Basis der Attribute mit dem Wert true die passende
113114
* Fahrzeugklasse zurück.
114115
*
115-
* @param fahrzeugOptions
116+
* @param fahrzeugOptions ausgewaehlte Optionen
117+
* @param verkehrsartOfMst Verkehrsart der angefragten Messstelle
116118
* @return die Fahrzeugklasse auf Basis der gewählten Fahrzeugoptions.
117119
*/
118-
public Fahrzeugklasse getFahrzeugklasseAccordingChoosenFahrzeugoptions(final FahrzeugOptionsDTO fahrzeugOptions) {
119-
if (areFahrzeugoptionsForFahrzeugklasseSummeKfzChoosen(fahrzeugOptions)) {
120+
public Fahrzeugklasse getFahrzeugklasseAccordingChoosenFahrzeugoptions(final FahrzeugOptionsDTO fahrzeugOptions, final Verkehrsart verkehrsartOfMst) {
121+
if (verkehrsartOfMst.equals(Verkehrsart.KFZ) && areFahrzeugoptionsForFahrzeugklasseSummeKfzChoosen(fahrzeugOptions)) {
120122
return Fahrzeugklasse.SUMME_KFZ;
121-
} else if (areFahrzeugoptionsForFahrzeugklasseZweiPlusEinsChoosen(fahrzeugOptions)) {
123+
} else if (verkehrsartOfMst.equals(Verkehrsart.KFZ) && areFahrzeugoptionsForFahrzeugklasseZweiPlusEinsChoosen(fahrzeugOptions)) {
122124
return Fahrzeugklasse.ZWEI_PLUS_EINS;
123-
} else if (areFahrzeugoptionsForFahrzeugklasseAchtPlusEinsChoosen(fahrzeugOptions)) {
125+
} else if (verkehrsartOfMst.equals(Verkehrsart.KFZ) && areFahrzeugoptionsForFahrzeugklasseAchtPlusEinsChoosen(fahrzeugOptions)) {
124126
return Fahrzeugklasse.ACHT_PLUS_EINS;
125-
} else if (areFahrzeugoptionsForFahrzeugklasseRadChoosen(fahrzeugOptions)) {
127+
} else if (verkehrsartOfMst.equals(Verkehrsart.RAD) && areFahrzeugoptionsForFahrzeugklasseRadChoosen(fahrzeugOptions)) {
126128
return Fahrzeugklasse.RAD;
127129
} else {
128130
return null;

src/main/java/de/muenchen/dave/services/messstelle/auswertung/AuswertungService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,8 @@ protected List<AuswertungMessstelle> ladeAuswertungGroupedByMstId(final Messstel
146146
.map(validateZeitraumAndTagesTypForMessstelle -> {
147147

148148
var fahrzeugklasseAccordingChoosenFahrzeugoptions = validierungService
149-
.getFahrzeugklasseAccordingChoosenFahrzeugoptions(options.getFahrzeuge());
149+
.getFahrzeugklasseAccordingChoosenFahrzeugoptions(options.getFahrzeuge(),
150+
messstelleService.getMessstelleByMstId(validateZeitraumAndTagesTypForMessstelle.getMstId()).getDetektierteVerkehrsart());
150151

151152
List<ReadMessfaehigkeitDTO> relevantMessfaehigkeiten;
152153
TagesaggregatResponseDto tagesaggregatResponse = createEmptyTagesaggregatResponse(validateZeitraumAndTagesTypForMessstelle.getMqIds());

src/test/java/de/muenchen/dave/services/messstelle/ValidierungServiceTest.java

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import de.muenchen.dave.domain.enums.AuswertungsZeitraum;
1111
import de.muenchen.dave.domain.enums.Fahrzeugklasse;
1212
import de.muenchen.dave.domain.enums.TagesTyp;
13+
import de.muenchen.dave.domain.enums.Verkehrsart;
1314
import de.muenchen.dave.domain.model.messstelle.ValidateZeitraumAndTagesTypForMessstelleModel;
1415
import de.muenchen.dave.services.KalendertagService;
1516
import java.time.LocalDate;
@@ -494,7 +495,11 @@ void getFahrzeugklasseAccordingChoosenFahrzeugoptions() {
494495
fahrzeugOptions.setPersonenkraftwagen(true);
495496
fahrzeugOptions.setLieferwagen(true);
496497
fahrzeugOptions.setRadverkehr(true);
497-
var result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions);
498+
var result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.UNBEKANNT);
499+
assertThat(result, is(nullValue()));
500+
result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.RAD);
501+
assertThat(result, is(Fahrzeugklasse.RAD));
502+
result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.KFZ);
498503
assertThat(result, is(Fahrzeugklasse.ACHT_PLUS_EINS));
499504

500505
fahrzeugOptions = new FahrzeugOptionsDTO();
@@ -510,7 +515,11 @@ void getFahrzeugklasseAccordingChoosenFahrzeugoptions() {
510515
fahrzeugOptions.setPersonenkraftwagen(false);
511516
fahrzeugOptions.setLieferwagen(false);
512517
fahrzeugOptions.setRadverkehr(true);
513-
result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions);
518+
result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.UNBEKANNT);
519+
assertThat(result, is(nullValue()));
520+
result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.RAD);
521+
assertThat(result, is(Fahrzeugklasse.RAD));
522+
result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.KFZ);
514523
assertThat(result, is(Fahrzeugklasse.ZWEI_PLUS_EINS));
515524

516525
fahrzeugOptions = new FahrzeugOptionsDTO();
@@ -526,7 +535,11 @@ void getFahrzeugklasseAccordingChoosenFahrzeugoptions() {
526535
fahrzeugOptions.setPersonenkraftwagen(false);
527536
fahrzeugOptions.setLieferwagen(false);
528537
fahrzeugOptions.setRadverkehr(true);
529-
result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions);
538+
result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.UNBEKANNT);
539+
assertThat(result, is(nullValue()));
540+
result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.RAD);
541+
assertThat(result, is(Fahrzeugklasse.RAD));
542+
result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.KFZ);
530543
assertThat(result, is(Fahrzeugklasse.SUMME_KFZ));
531544

532545
fahrzeugOptions = new FahrzeugOptionsDTO();
@@ -542,7 +555,11 @@ void getFahrzeugklasseAccordingChoosenFahrzeugoptions() {
542555
fahrzeugOptions.setPersonenkraftwagen(false);
543556
fahrzeugOptions.setLieferwagen(false);
544557
fahrzeugOptions.setRadverkehr(true);
545-
result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions);
558+
result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.UNBEKANNT);
559+
assertThat(result, is(nullValue()));
560+
result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.KFZ);
561+
assertThat(result, is(nullValue()));
562+
result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.RAD);
546563
assertThat(result, is(Fahrzeugklasse.RAD));
547564

548565
fahrzeugOptions = new FahrzeugOptionsDTO();
@@ -558,7 +575,11 @@ void getFahrzeugklasseAccordingChoosenFahrzeugoptions() {
558575
fahrzeugOptions.setPersonenkraftwagen(false);
559576
fahrzeugOptions.setLieferwagen(false);
560577
fahrzeugOptions.setRadverkehr(false);
561-
result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions);
578+
result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.UNBEKANNT);
579+
assertThat(result, is(nullValue()));
580+
result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.RAD);
581+
assertThat(result, is(nullValue()));
582+
result = validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.KFZ);
562583
assertThat(result, is(nullValue()));
563584
}
564585

src/test/java/de/muenchen/dave/services/messstelle/auswertung/AuswertungServiceTest.java

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@
77
import de.muenchen.dave.domain.dtos.messstelle.auswertung.AuswertungMessstelleUndZeitraum;
88
import de.muenchen.dave.domain.dtos.messstelle.auswertung.MessstelleAuswertungIdDTO;
99
import de.muenchen.dave.domain.dtos.messstelle.auswertung.MessstelleAuswertungOptionsDTO;
10+
import de.muenchen.dave.domain.elasticsearch.detektor.Messstelle;
1011
import de.muenchen.dave.domain.enums.AuswertungsZeitraum;
1112
import de.muenchen.dave.domain.enums.Fahrzeugklasse;
1213
import de.muenchen.dave.domain.enums.TagesTyp;
14+
import de.muenchen.dave.domain.enums.Verkehrsart;
1315
import de.muenchen.dave.domain.mapper.detektor.AuswertungMapperImpl;
1416
import de.muenchen.dave.domain.model.messstelle.ValidateZeitraumAndTagesTypForMessstelleModel;
1517
import de.muenchen.dave.geodateneai.gen.model.TagesaggregatDto;
@@ -113,7 +115,13 @@ void ladeAuswertungGroupedByMstIdAchtPlusEinsWithdZeitraeumeAndTagesTypForMessst
113115
Mockito.when(messstelleService.getMessfaehigkeitenForZeitraumForMessstelle("1234", LocalDate.of(2020, 1, 1), LocalDate.of(2020, 3, 31)))
114116
.thenReturn(messfaehigkeiten);
115117

116-
Mockito.when(validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions)).thenReturn(Fahrzeugklasse.ACHT_PLUS_EINS);
118+
final Messstelle mockedMessstele = new Messstelle();
119+
mockedMessstele.setMstId("1234");
120+
mockedMessstele.setDetektierteVerkehrsart(Verkehrsart.KFZ);
121+
Mockito.when(messstelleService.getMessstelleByMstId("1234")).thenReturn(mockedMessstele);
122+
123+
Mockito.when(validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.KFZ))
124+
.thenReturn(Fahrzeugklasse.ACHT_PLUS_EINS);
117125

118126
var zeitraum = new Zeitraum(YearMonth.of(2020, 1), YearMonth.of(2020, 3), AuswertungsZeitraum.QUARTAL_1);
119127
var request = new ValidateZeitraumAndTagesTypForMessstelleModel();
@@ -233,7 +241,13 @@ void ladeAuswertungGroupedByMstIdAchtPlusEinsWithZeitraeumeAndTagesTypForMessste
233241
Mockito.when(messstelleService.getMessfaehigkeitenForZeitraumForMessstelle("1234", LocalDate.of(2020, 1, 1), LocalDate.of(2020, 3, 31)))
234242
.thenReturn(messfaehigkeiten);
235243

236-
Mockito.when(validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions)).thenReturn(Fahrzeugklasse.ACHT_PLUS_EINS);
244+
final Messstelle mockedMessstele = new Messstelle();
245+
mockedMessstele.setMstId("1234");
246+
mockedMessstele.setDetektierteVerkehrsart(Verkehrsart.KFZ);
247+
Mockito.when(messstelleService.getMessstelleByMstId("1234")).thenReturn(mockedMessstele);
248+
249+
Mockito.when(validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.KFZ))
250+
.thenReturn(Fahrzeugklasse.ACHT_PLUS_EINS);
237251

238252
var zeitraum = new Zeitraum(YearMonth.of(2020, 1), YearMonth.of(2020, 3), AuswertungsZeitraum.QUARTAL_1);
239253
var request = new ValidateZeitraumAndTagesTypForMessstelleModel();
@@ -361,7 +375,13 @@ void ladeAuswertungGroupedByMstIdAchtPlusEinsWithZeitraeumeAndTagesTypForMessste
361375
Mockito.when(messstelleService.getMessfaehigkeitenForZeitraumForMessstelle("1234", LocalDate.of(2020, 1, 1), LocalDate.of(2020, 3, 31)))
362376
.thenReturn(messfaehigkeiten);
363377

364-
Mockito.when(validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions)).thenReturn(Fahrzeugklasse.ACHT_PLUS_EINS);
378+
final Messstelle mockedMessstele = new Messstelle();
379+
mockedMessstele.setMstId("1234");
380+
mockedMessstele.setDetektierteVerkehrsart(Verkehrsart.KFZ);
381+
Mockito.when(messstelleService.getMessstelleByMstId("1234")).thenReturn(mockedMessstele);
382+
383+
Mockito.when(validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.KFZ))
384+
.thenReturn(Fahrzeugklasse.ACHT_PLUS_EINS);
365385

366386
var zeitraum = new Zeitraum(YearMonth.of(2020, 1), YearMonth.of(2020, 3), AuswertungsZeitraum.QUARTAL_1);
367387
var request = new ValidateZeitraumAndTagesTypForMessstelleModel();
@@ -496,7 +516,12 @@ void ladeAuswertungGroupedByMstIdRadWithdZeitraeumeAndTagesTypForMessstelleValid
496516
Mockito.when(messstelleService.getMessfaehigkeitenForZeitraumForMessstelle("1234", LocalDate.of(2020, 1, 1), LocalDate.of(2020, 3, 31)))
497517
.thenReturn(messfaehigkeiten);
498518

499-
Mockito.when(validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions)).thenReturn(Fahrzeugklasse.RAD);
519+
final Messstelle mockedMessstele = new Messstelle();
520+
mockedMessstele.setMstId("1234");
521+
mockedMessstele.setDetektierteVerkehrsart(Verkehrsart.RAD);
522+
Mockito.when(messstelleService.getMessstelleByMstId("1234")).thenReturn(mockedMessstele);
523+
524+
Mockito.when(validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.RAD)).thenReturn(Fahrzeugklasse.RAD);
500525

501526
var zeitraum = new Zeitraum(YearMonth.of(2020, 1), YearMonth.of(2020, 3), AuswertungsZeitraum.QUARTAL_1);
502527
var request = new ValidateZeitraumAndTagesTypForMessstelleModel();
@@ -616,7 +641,12 @@ void ladeAuswertungGroupedByMstIdRadWithdZeitraeumeAndTagesTypForMessstelleValid
616641
Mockito.when(messstelleService.getMessfaehigkeitenForZeitraumForMessstelle("1234", LocalDate.of(2020, 1, 1), LocalDate.of(2020, 3, 31)))
617642
.thenReturn(messfaehigkeiten);
618643

619-
Mockito.when(validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions)).thenReturn(Fahrzeugklasse.RAD);
644+
final Messstelle mockedMessstele = new Messstelle();
645+
mockedMessstele.setMstId("1234");
646+
mockedMessstele.setDetektierteVerkehrsart(Verkehrsart.RAD);
647+
Mockito.when(messstelleService.getMessstelleByMstId("1234")).thenReturn(mockedMessstele);
648+
649+
Mockito.when(validierungService.getFahrzeugklasseAccordingChoosenFahrzeugoptions(fahrzeugOptions, Verkehrsart.RAD)).thenReturn(Fahrzeugklasse.RAD);
620650

621651
final var result = auswertungService.ladeAuswertungGroupedByMstId(auswertungOptions);
622652

0 commit comments

Comments
 (0)