Skip to content

Commit

Permalink
Flyttet generering av masse test data til en egen klasse som heter Te…
Browse files Browse the repository at this point in the history
…stDataGenerator.java. Den brukes i både LastInnTestData.java og LastInnMasseTestData.java.

Vi kan styre hvor mange avtaler som blir generert via et parameter i TestDataGenerator.java.

Vi genererer rundt 10 avtaler for standard lokal kjøring og rundt 500 på LastInnMasseTestData.java.

TestDataGenerator.java gjenspeiler data rapportert av Stine (fag person i team tiltak)
  • Loading branch information
d142796 committed Mar 4, 2025
1 parent 10f9561 commit 1a1a0db
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 72 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,13 @@

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.AvtaleRepository;
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.*;
import static no.nav.tag.tiltaksgjennomforing.TestDataGenerator.genererAvtaler;

@Component
@RequiredArgsConstructor
Expand All @@ -26,61 +20,7 @@ public class LastInnMasseTestData implements ApplicationListener<ApplicationRead
@Override
public void onApplicationEvent(ApplicationReadyEvent event) {
log.info("Laster inn masse testdata");

// ØK DENNE FOR Å GENERERE MYE MER DATA FOR LABS
IntStream.range(0, 10).forEach(i -> {
BedriftNr bedriftNrTilfeldig = new BedriftNr(genererTilfeldigGyldigBedriftNr());
List.of(
// Midlertidig Lonnstilskudd Avtale
enMidlertidigLonnstilskuddAvtaleGodkjentAvVeileder(),
enMidlertidigLonnstilskuddAvtaleGodkjentAvVeilederAvslåttePerioderSomMåFølgesOpp(),
enMidlertidigLonnstilskuddAvtaleGodkjentAvVeilederAvslåttePerioderSomHarBlittRettetAvVeileder(),
// VTAO Avtale
enVtaoAvtaleGodkjentAvVeileder(),
enVtaoAvtaleGodkjentAvVeilederAvslåttePerioderSomMåFølgesOpp(),
enVtaoAvtaleGodkjentAvVeilederAvslåttePerioderSomHarBlittRettetAvVeileder(),
// Varig Lonnstilskudd Avtale
enVarigLonnstilskuddAvtaleMedAltUtfyltOgGodkjent(),
enVarigLonnstilskuddAvtaleMedAltUtfyltOgGodkjentAvslåttePerioderSomMåFølgesOpp(),
enVarigLonnstilskuddAvtaleMedAltUtfyltOgGodkjentAvslåttePerioderSomHarBlittRettetAvVeileder()
)
.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()));

currAvtale.setStatus(Status.fra(currAvtale));
avtaleRepository.save(currAvtale);
});
});

avtaleRepository.saveAll(genererAvtaler(490));
}

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
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,8 @@

import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import no.nav.fnrgen.FnrGen;
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;
Expand All @@ -19,12 +16,8 @@
import java.time.LocalDate;
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.enMidlertidigLonnstilskuddAvtaleGodkjentAvVeileder;
import static no.nav.tag.tiltaksgjennomforing.avtale.TestData.enVarigLonnstilskuddAvtaleMedAltUtfyltOgGodkjent;
import static no.nav.tag.tiltaksgjennomforing.avtale.TestData.enVtaoAvtaleGodkjentAvVeileder;
import static no.nav.tag.tiltaksgjennomforing.TestDataGenerator.genererAvtaler;

@Component
@RequiredArgsConstructor
Expand Down Expand Up @@ -101,6 +94,7 @@ public void onApplicationEvent(ApplicationReadyEvent event) {
avtaler.add(TestData.enMidlertidigLonnstilskuddAvtaleMedAltUtfylt());
Now.resetClock();

avtaler.addAll(avtaleRepository.saveAll(genererAvtaler(10)));
avtaler.forEach(avtale -> {
avtale.setStatus(Status.fra(avtale));
avtaleRepository.save(avtale);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
public class LokalTiltaksgjennomforingApplication extends TiltaksgjennomforingApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(TiltaksgjennomforingApplication.class)
.profiles(Miljø.LOCAL, Miljø.WIREMOCK, Miljø.TESTDATA,Miljø.MASSE_TESTDATA)
.profiles(Miljø.LOCAL, Miljø.WIREMOCK, Miljø.TESTDATA)
.build()
.run();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
package no.nav.tag.tiltaksgjennomforing;

import no.nav.fnrgen.FnrGen;
import no.nav.tag.tiltaksgjennomforing.avtale.*;

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

public class TestDataGenerator {
public static List<Avtale> genererAvtaler(int antall){
List<Avtale> avtaler = new ArrayList<>();
IntStream.range(0, antall).forEach(i -> {
BedriftNr bedriftNrTilfeldig = new BedriftNr(genererTilfeldigGyldigBedriftNr());
List.of(
// Midlertidig Lonnstilskudd Avtale
enMidlertidigLonnstilskuddAvtaleGodkjentAvVeileder(),
enMidlertidigLonnstilskuddAvtaleGodkjentAvVeilederAvslåttePerioderSomMåFølgesOpp(),
enMidlertidigLonnstilskuddAvtaleGodkjentAvVeilederAvslåttePerioderSomHarBlittRettetAvVeileder(),
// VTAO Avtale
enVtaoAvtaleGodkjentAvVeileder(),
enVtaoAvtaleGodkjentAvVeilederAvslåttePerioderSomMåFølgesOpp(),
enVtaoAvtaleGodkjentAvVeilederAvslåttePerioderSomHarBlittRettetAvVeileder(),
// Varig Lonnstilskudd Avtale
enVarigLonnstilskuddAvtaleMedAltUtfyltOgGodkjent(),
enVarigLonnstilskuddAvtaleMedAltUtfyltOgGodkjentAvslåttePerioderSomMåFølgesOpp(),
enVarigLonnstilskuddAvtaleMedAltUtfyltOgGodkjentAvslåttePerioderSomHarBlittRettetAvVeileder()
)
.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()));
currAvtale.setStatus(Status.fra(currAvtale));
avtaler.add(currAvtale);
});
});
return avtaler;
}
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 1a1a0db

Please sign in to comment.