Skip to content

Commit

Permalink
flyttet generering av utrolig masse test data i LastInnMasseTestData.…
Browse files Browse the repository at this point in the history
…java og ikke LastInnTestData.java slik at det går raskere å starte lokalt uten å vente på masse data generering.
  • Loading branch information
d142796 committed Mar 4, 2025
1 parent 0d4d786 commit 9adb18c
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 55 deletions.
1 change: 1 addition & 0 deletions src/main/java/no/nav/tag/tiltaksgjennomforing/Miljø.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,5 @@ public class Miljø {
public static final String DOCKER_COMPOSE = "dockercompose";
public static final String WIREMOCK = "wiremock";
public static final String TESTDATA = "testdata";
public static final String MASSE_TESTDATA = "masse-testdata";
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,24 @@

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import no.nav.tag.tiltaksgjennomforing.avtale.Avtale;
import no.nav.tag.tiltaksgjennomforing.avtale.AvtaleRepository;
import no.nav.tag.tiltaksgjennomforing.avtale.TestData;
import no.nav.fnrgen.FnrGen;
import no.nav.tag.tiltaksgjennomforing.avtale.*;
import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;

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.*;

@Component
@RequiredArgsConstructor
@Slf4j
@Profile("masse-testdata")
@Profile(Miljø.MASSE_TESTDATA)
public class LastInnMasseTestData implements ApplicationListener<ApplicationReadyEvent> {
private final AvtaleRepository avtaleRepository;

Expand All @@ -28,5 +34,60 @@ public void onApplicationEvent(ApplicationReadyEvent event) {
avtale.getGjeldendeInnhold().setBedriftNavn(NavnGenerator.genererBedriftsnavn());
avtaleRepository.save(avtale);
}

List<Avtale> avtalerDataForLabs = hentMyeMerAvtalerDataForLabs();
avtalerDataForLabs.forEach(avtale -> {
avtale.setStatus(Status.fra(avtale));
avtaleRepository.save(avtale);
});
}

private List<Avtale> hentMyeMerAvtalerDataForLabs() {
List<Avtale> veldigMangeFlereAvtaler = new ArrayList<>();

IntStream.range(0, 5000).forEach(i -> {
BedriftNr bedriftNrTilfeldig = new BedriftNr(genererTilfeldigGyldigBedriftNr());
List.of(
enMidlertidigLonnstilskuddAvtaleGodkjentAvVeileder(),
enVtaoAvtaleGodkjentAvVeileder(),
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 genererTilfeldigGyldigBedriftNr(){
int num1 = (int) Math.floor(Math.random()*10);
int num2 = (int) Math.floor(Math.random()*10);
int num3 = (int) Math.floor(Math.random()*10);
int num4 = (int) Math.floor(Math.random()*10);
int num5 = (int) Math.floor(Math.random()*10);
int num6 = (int) Math.floor(Math.random()*10);
int num7 = (int) Math.floor(Math.random()*10);
int num8 = (int) Math.floor(Math.random()*10);

// vekt: 3 2 7 6 5 4 3 2
var weighted = num1*3 + num2*2 + num3*7 + num4*6 + num5*5 + num6*4 + num7*3 + num8*2;
var remainder = weighted % 11;
var contr = 11 - remainder;

if (contr == 11)
contr = 0;
if (contr == 10)
return null; // feil orgnr
else
return "" + num1 + num2 + num3 + num4 + num5 + num6 + num7 + num8 + contr; // valid orgnr
}
}
51 changes: 0 additions & 51 deletions src/test/java/no/nav/tag/tiltaksgjennomforing/LastInnTestData.java
Original file line number Diff line number Diff line change
Expand Up @@ -101,60 +101,9 @@ public void onApplicationEvent(ApplicationReadyEvent event) {
avtaler.add(TestData.enMidlertidigLonnstilskuddAvtaleMedAltUtfylt());
Now.resetClock();

List<Avtale> avtalerDataForLabs = hentMyeMerAvtalerDataForLabs();
avtaler.addAll(avtalerDataForLabs);
avtaler.forEach(avtale -> {
avtale.setStatus(Status.fra(avtale));
avtaleRepository.save(avtale);
});
}

private List<Avtale> hentMyeMerAvtalerDataForLabs() {
List<Avtale> veldigMangeFlereAvtaler = new ArrayList<>();

IntStream.range(0, 5000).forEach(i -> {
BedriftNr bedriftNrTilfeldig = new BedriftNr(genererTilfeldigGyldigBedriftNr());
List.of(
enMidlertidigLonnstilskuddAvtaleGodkjentAvVeileder(),
enVtaoAvtaleGodkjentAvVeileder(),
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 genererTilfeldigGyldigBedriftNr(){
int num1 = (int) Math.floor(Math.random()*10);
int num2 = (int) Math.floor(Math.random()*10);
int num3 = (int) Math.floor(Math.random()*10);
int num4 = (int) Math.floor(Math.random()*10);
int num5 = (int) Math.floor(Math.random()*10);
int num6 = (int) Math.floor(Math.random()*10);
int num7 = (int) Math.floor(Math.random()*10);
int num8 = (int) Math.floor(Math.random()*10);

// vekt: 3 2 7 6 5 4 3 2
var weighted = num1*3 + num2*2 + num3*7 + num4*6 + num5*5 + num6*4 + num7*3 + num8*2;
var remainder = weighted % 11;
var contr = 11 - remainder;

if (contr == 11)
contr = 0;
if (contr == 10)
return null; // feil orgnr
else
return "" + num1 + num2 + num3 + num4 + num5 + num6 + num7 + num8 + contr; // valid orgnr
}
}

0 comments on commit 9adb18c

Please sign in to comment.