Skip to content

Commit

Permalink
feat. forbedre generering av tilfeldige navn for testdata
Browse files Browse the repository at this point in the history
  • Loading branch information
eirikv committed Mar 4, 2025
1 parent c769d9c commit 0d4d786
Show file tree
Hide file tree
Showing 3 changed files with 274 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import no.nav.tag.tiltaksgjennomforing.avtale.Avtale;
import no.nav.tag.tiltaksgjennomforing.avtale.AvtaleRepository;
import no.nav.tag.tiltaksgjennomforing.avtale.TestData;
import org.apache.commons.text.RandomStringGenerator;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Profile;
Expand All @@ -24,7 +23,9 @@ public void onApplicationEvent(ApplicationReadyEvent event) {

for (int i = 0; i < 555; i++) {
Avtale avtale = TestData.enLonnstilskuddAvtaleGodkjentAvVeilederTilbakeITid();
avtale.getGjeldendeInnhold().setDeltakerFornavn(new RandomStringGenerator.Builder().withinRange('a', 'z').build().generate(5));
avtale.getGjeldendeInnhold().setDeltakerFornavn(NavnGenerator.genererFornavn());
avtale.getGjeldendeInnhold().setDeltakerEtternavn(NavnGenerator.genererEtternavn());
avtale.getGjeldendeInnhold().setBedriftNavn(NavnGenerator.genererBedriftsnavn());
avtaleRepository.save(avtale);
}
}
Expand Down
66 changes: 31 additions & 35 deletions src/test/java/no/nav/tag/tiltaksgjennomforing/LastInnTestData.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,33 @@
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import no.nav.fnrgen.FnrGen;
import no.nav.tag.tiltaksgjennomforing.avtale.*;
import no.nav.tag.tiltaksgjennomforing.avtale.Avtale;
import no.nav.tag.tiltaksgjennomforing.avtale.AvtaleRepository;
import no.nav.tag.tiltaksgjennomforing.avtale.BedriftNr;
import no.nav.tag.tiltaksgjennomforing.avtale.Fnr;
import no.nav.tag.tiltaksgjennomforing.avtale.Status;
import no.nav.tag.tiltaksgjennomforing.avtale.TestData;
import no.nav.tag.tiltaksgjennomforing.avtale.Tiltakstype;
import no.nav.tag.tiltaksgjennomforing.utils.Now;
import org.apache.commons.text.RandomStringGenerator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Profile;
import org.springframework.core.env.Environment;
import org.springframework.stereotype.Component;

import java.time.LocalDate;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.stream.IntStream;

import static no.nav.tag.tiltaksgjennomforing.avtale.TestData.*;
import static no.nav.tag.tiltaksgjennomforing.avtale.TestData.enMidlertidigLonnstilskuddAvtaleGodkjentAvVeileder;
import static no.nav.tag.tiltaksgjennomforing.avtale.TestData.enVarigLonnstilskuddAvtaleMedAltUtfyltOgGodkjent;
import static no.nav.tag.tiltaksgjennomforing.avtale.TestData.enVtaoAvtaleGodkjentAvVeileder;

@Component
@RequiredArgsConstructor
@Slf4j
@Profile({ Miljø.TESTDATA, Miljø.DEV_GCP_LABS })
@Profile({ Miljø.TESTDATA })
public class LastInnTestData implements ApplicationListener<ApplicationReadyEvent> {
private final AvtaleRepository avtaleRepository;

Expand Down Expand Up @@ -105,40 +112,29 @@ public void onApplicationEvent(ApplicationReadyEvent event) {
private List<Avtale> hentMyeMerAvtalerDataForLabs() {
List<Avtale> veldigMangeFlereAvtaler = new ArrayList<>();

IntStream.range(0,5000).forEach(i -> {
IntStream.range(0, 5000).forEach(i -> {
BedriftNr bedriftNrTilfeldig = new BedriftNr(genererTilfeldigGyldigBedriftNr());
String BedriftNavnTilfeldig = genererTilfedligOrd(10);
List.of(enMidlertidigLonnstilskuddAvtaleGodkjentAvVeileder(),
List.of(
enMidlertidigLonnstilskuddAvtaleGodkjentAvVeileder(),
enVtaoAvtaleGodkjentAvVeileder(),
enVarigLonnstilskuddAvtaleMedAltUtfyltOgGodkjent())
.forEach( currAvtale -> {
currAvtale.setId(UUID.randomUUID());
currAvtale.setBedriftNr(bedriftNrTilfeldig);
currAvtale.getGjeldendeInnhold().setBedriftNavn(BedriftNavnTilfeldig);
currAvtale.getGjeldendeInnhold().setId(UUID.randomUUID());
currAvtale.getGjeldendeInnhold().setDeltakerFornavn(genererTilfedligOrd(5));
currAvtale.getGjeldendeInnhold().setDeltakerEtternavn(genererTilfedligOrd(5));
currAvtale.getGjeldendeInnhold().setGodkjentAvNavIdent(TestData.enNavIdent());
currAvtale.setDeltakerFnr(new Fnr(FnrGen.singleFnr().toString()));

veldigMangeFlereAvtaler.add(currAvtale);
});
enVarigLonnstilskuddAvtaleMedAltUtfyltOgGodkjent()
)
.forEach(currAvtale -> {
currAvtale.setId(UUID.randomUUID());
currAvtale.setBedriftNr(bedriftNrTilfeldig);
currAvtale.getGjeldendeInnhold().setId(UUID.randomUUID());
currAvtale.getGjeldendeInnhold().setDeltakerFornavn(NavnGenerator.genererFornavn());
currAvtale.getGjeldendeInnhold().setDeltakerEtternavn(NavnGenerator.genererEtternavn());
currAvtale.getGjeldendeInnhold().setBedriftNavn(NavnGenerator.genererBedriftsnavn());
currAvtale.getGjeldendeInnhold().setGodkjentAvNavIdent(TestData.enNavIdent());
currAvtale.setDeltakerFnr(new Fnr(FnrGen.singleFnr()));

veldigMangeFlereAvtaler.add(currAvtale);
});
});
return veldigMangeFlereAvtaler;
}


public static String genererTilfedligOrd(int length) {
StringBuilder ord = new StringBuilder(length);
for (int i = 0; i < length; i++) {
RandomStringGenerator currGenerertOrd = new RandomStringGenerator.Builder()
.withinRange('a', 'z')
.build();
ord.append(currGenerertOrd.generate(1));
}
return ord.toString();
}

public static String genererTilfeldigGyldigBedriftNr(){
int num1 = (int) Math.floor(Math.random()*10);
int num2 = (int) Math.floor(Math.random()*10);
Expand Down
240 changes: 240 additions & 0 deletions src/test/java/no/nav/tag/tiltaksgjennomforing/NavnGenerator.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,240 @@
package no.nav.tag.tiltaksgjennomforing;

import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class NavnGenerator {
public static final List<String> FORNAVN = List.of(
"Aktuell",
"Alvorlig",
"Ansvarlig",
"Berømt",
"Betydelig",
"Bevisst",
"Bred",
"Dum",
"Dyp",
"Ekkel",
"Eksisterende",
"Ekte",
"Enkel",
"Ensom",
"Falsk",
"Fast",
"Felles",
"Fersk",
"Fjern",
"Flau",
"Følsom",
"Forsiktig",
"Fremmed",
"Fryktelig",
"Glatt",
"Gravid",
"Grunnleggende",
"Heldig",
"Hemmelig",
"Hjelpsom",
"Hyppig",
"Imponerende",
"Kjedelig",
"Kul",
"Langsom",
"Lat",
"Lav",
"Lignende",
"Løs",
"Lovlig",
"Lykkelig",
"Lys",
"Menneskelig",
"Merkelig",
"Midlertidig",
"Mistenkelig",
"Modig",
"Mørk",
"Morsom",
"Motsatt",
"Mulig",
"Naturlig",
"Nåværende",
"Nødvendig",
"Nøyaktig",
"Nysgjerrig",
"Nyttig",
"Offentlig",
"Opprinnelig",
"Ordentlig",
"Plutselig",
"Rå",
"Rask",
"Regelmessig",
"Ren",
"Rettferdig",
"Rimelig",
"Rund",
"Ryddig",
"Sannsynlig",
"Selvsikker",
"Sint",
"Skarp",
"Skikkelig",
"Skyldig",
"Smal",
"Søt",
"Spennende",
"Stille",
"Stolt",
"Stram",
"Streng",
"Stygg",
"Sulten",
"Sunn",
"Synlig",
"Tilgjengelig",
"Tilstrekkelig",
"Tung",
"Tynn",
"Uavhengig",
"Ujevn",
"Ulovlig",
"Ulykkelig",
"Umiddelbar",
"Urettferdig",
"Vellykket",
"Vennlig",
"Verdifull",
"Vill",
"Villig",
"Voksen",
"Ærlig",
"Åpen",
"Åpenbar"
);

public static final List<String> ETTERNAVN = List.of(
"Avstand",
"Bakgrunn",
"Ball",
"Bilde",
"Blod",
"Bok",
"Bokstav",
"Bunn",
"By",
"Del",
"Drøm",
"Eksempel",
"Eske",
"Evne",
"Familie",
"Farge",
"Feil",
"Fest",
"Flagg",
"Flaske",
"Fordel",
"Forhold",
"Form",
"Forskjell",
"Forslag",
"Gang",
"Grense",
"Grunn",
"Håp",
"Humør",
"Hus",
"Idrett",
"Jobb",
"Kamp",
"Kart",
"Konge",
"Konkurranse",
"Kropp",
"Lag",
"Land",
"Liv",
"Lov",
"Løype",
"Luft",
"Lyd",
"Lys",
"Mål",
"Mat",
"Måte",
"Menneske",
"Merke",
"Miljø",
"Møte",
"Nøkkel",
"Område",
"Oppgave",
"Ord",
"Øyeblikk",
"Pause",
"Pose",
"Pris",
"Prøve",
"Retning",
"Sak",
"Salg",
"Samfunn",
"Samtale",
"Sang",
"Seier",
"Seng",
"Side",
"Situasjon",
"Skade",
"Skilt",
"Skole",
"Skritt",
"Slutt",
"Søvn",
"Spill",
"Spøk",
"Spørsmål",
"Sted",
"Stemme",
"Stjerne",
"Støtte",
"Stund",
"Stykke",
"Svar",
"Sykdom",
"Tall",
"Tekst",
"Tid",
"Time",
"Ting",
"Utfordring",
"Vær",
"Valg",
"Vei",
"Venn",
"Årsak"
);

public static final List<String> BEDRIFTER = Stream
.concat(FORNAVN.stream(), ETTERNAVN.stream())
.collect(Collectors.toList());

public static final List<String> SELSKAPSFORM = List.of("AS", "ASA", "DA", "KF", "SA", "HF");

public static String genererBedriftsnavn() {
return random(BEDRIFTER) + " " + random(SELSKAPSFORM);
}

public static String genererFornavn() {
return random(FORNAVN);
}

public static String genererEtternavn() {
return random(ETTERNAVN);
}

private static String random(List<String> list) {
return list.get((int) Math.round(Math.random() * (list.size() - 1)));
}
}

0 comments on commit 0d4d786

Please sign in to comment.