KON-18 - Stresstestgenerator
diff --git a/src/main/java/org/eclipse/openk/contactbasedata/controller/InternalPersonController.java b/src/main/java/org/eclipse/openk/contactbasedata/controller/InternalPersonController.java index adf51c8..f55e549 100644 --- a/src/main/java/org/eclipse/openk/contactbasedata/controller/InternalPersonController.java +++ b/src/main/java/org/eclipse/openk/contactbasedata/controller/InternalPersonController.java
@@ -20,7 +20,11 @@ import lombok.extern.log4j.Log4j2; import org.eclipse.openk.contactbasedata.exceptions.BadRequestException; import org.eclipse.openk.contactbasedata.service.InternalPersonService; +import org.eclipse.openk.contactbasedata.service.PersonTypeService; +import org.eclipse.openk.contactbasedata.service.SalutationService; import org.eclipse.openk.contactbasedata.viewmodel.InternalPersonDto; +import org.eclipse.openk.contactbasedata.viewmodel.PersonTypeDto; +import org.eclipse.openk.contactbasedata.viewmodel.SalutationDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -34,8 +38,7 @@ import org.springframework.web.servlet.support.ServletUriComponentsBuilder; import java.net.URI; -import java.util.Optional; -import java.util.UUID; +import java.util.*; @Log4j2 @RestController @@ -44,6 +47,12 @@ @Autowired private InternalPersonService internalPersonService; + @Autowired + private SalutationService salutationService; + + @Autowired + private PersonTypeService personTypeService; + @GetMapping("/{contactUuid}") @Secured({"ROLE_KON-READER", "ROLE_KON-WRITER", "ROLE_KON-ADMIN"}) @ApiOperation(value = "Anzeigen einer internen Person") @@ -51,7 +60,53 @@ @ApiResponse(code = 404, message = "Person wurde nicht gefunden")}) @ResponseStatus(HttpStatus.OK) public InternalPersonDto getInternalPerson(@PathVariable UUID contactUuid) { - return internalPersonService.findInternalPerson(contactUuid); + InternalPersonDto dto = internalPersonService.findInternalPerson(contactUuid); + String[] vornamen = { "Aldelbar", "Bertram", "Claus", "Detlef", "Eberhardt", "Franco", "Gerald", + "Hinrich", "Ingelbert", "Johann", "Klement", "Ludmilla", "Manfreda", "Norbertine", "Ottilie", + "Petrella", "Quintesima", "Ricarda", "Siegesmund", "Theofilles" }; + String[] anreden = { "m", "m", "m", "m", "m", "m", "m", + "m", "m", "m", "m", "f", "f", "f", "f", + "f", "f", "f", "f", "f" }; + String[] nn1 = {"Butterbröt", "Hafermus", "Ringelding", "Flötenmann", "Pinsel", "Schabernack", + "Flottenpeter", "Kieselstein", "Otter", "Bütterblüm", "Senfmann", "Piecker", "Kachel", "Körble", + "Hegel", "Hedel", "Wedel", "Prim", "Grunntt", "Klopper", "Fähnchen", "Lotter", "Gofink", "Bafink", + "Öger", "Aladin", "Beladin", "Roderik", "Smith", "Barker", "Fellini", "Trappatoni", "Petersilie"}; + String[] nn2 = {"Kracht", "Zuber", "Müller", "Maier", "Schmidt", "Herbrecht", "Schlotterbeck", + "Kraft", "Meier", "Adam", "Brecht", "Schmälzle", "Juncker", "Borke", "Gröhlhejim", "Schlampper", + "Horder", "Border", "Zunder", "Gimmel", "Klüser", "Haferkamp", "Heysterkamp", "Meyster", "Schöler", + "Grumpp", "Klos", "Klöschen", "Brettenhaupt", "Öztürk", "Pächter", "Jäger", "Schneider", "Seyfarth", + "Obstler", "Schnabbes", "German", "Sneyder", "Spindel"}; + + int iCount = 20000; + List<SalutationDto> salutationsDtos = salutationService.findAllSalutations(); + Map<String, UUID> salutationMap = new HashMap<>(); + salutationMap.put( "m", salutationsDtos.get(0).getUuid()); + salutationMap.put( "f", salutationsDtos.get(1).getUuid()); + + List<PersonTypeDto> personTypeDtos = personTypeService.findAllPersonTypes(); + for( int i=0; i<iCount; i++) { + int idxVn = getRandomIndex(vornamen.length); + dto.setFirstName(vornamen[idxVn]); + dto.setSalutationUuid(salutationMap.get(anreden[idxVn])); + if( Math.random() < 0.5d ) { + dto.setLastName(nn1[getRandomIndex(nn1.length)] + "-" + nn2[getRandomIndex(nn2.length)]); + } + else { + dto.setLastName(nn2[getRandomIndex(nn2.length)] + "-" + nn1[getRandomIndex(nn1.length)]); + } + dto.setUid(UUID.randomUUID().toString()); + dto.setContactNote( "Autogen Stresstest" ); + dto.setUserRef(null); + dto.setPersonTypeUuid(personTypeDtos.get(getRandomIndex(personTypeDtos.size())).getUuid()); + + this.internalPersonService.insertInternalPerson(dto); + } + + return dto; + } + + private int getRandomIndex( int arraySize ) { + return (int)(Math.random() * arraySize); } @GetMapping