Skip to content

Commit

Permalink
♻️ Dedupliserer InntektskilderDao
Browse files Browse the repository at this point in the history
  • Loading branch information
havstein committed Oct 25, 2024
1 parent d32debe commit ca5d40a
Show file tree
Hide file tree
Showing 7 changed files with 56 additions and 106 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import no.nav.helse.modell.InntektskildetypeDto
import no.nav.helse.modell.KomplettInntektskildeDto
import no.nav.helse.modell.NyInntektskildeDto

internal class TransactionalInntektskilderDao(
internal class InntektskilderDao(
private val session: Session,
) : InntektskilderRepository {
private val arbeidsgiverDao = TransactionalArbeidsgiverDao(session)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ import kotliquery.TransactionalSession
import kotliquery.sessionOf
import no.nav.helse.db.AvviksvurderingDao
import no.nav.helse.db.CommandContextRepository
import no.nav.helse.db.InntektskilderDao
import no.nav.helse.db.OppgaveRepository
import no.nav.helse.db.TransactionalArbeidsforholdDao
import no.nav.helse.db.TransactionalAvviksvurderingDao
import no.nav.helse.db.TransactionalCommandContextDao
import no.nav.helse.db.TransactionalEgenAnsattDao
import no.nav.helse.db.TransactionalInntektskilderDao
import no.nav.helse.db.TransactionalMeldingDao
import no.nav.helse.db.TransactionalOppgaveDao
import no.nav.helse.db.TransactionalOpptegnelseDao
Expand Down Expand Up @@ -230,7 +230,7 @@ internal class Kommandofabrikk(
aktørId = hendelse.aktørId,
organisasjonsnummer = hendelse.organisasjonsnummer,
personRepository = TransactionalPersonDao(transactionalSession),
inntektskilderRepository = TransactionalInntektskilderDao(transactionalSession),
inntektskilderRepository = InntektskilderDao(transactionalSession),
)

internal fun adressebeskyttelseEndret(
Expand Down Expand Up @@ -380,7 +380,7 @@ internal class Kommandofabrikk(
vedtakRepository = TransactionalVedtakDao(session),
commandContextRepository = TransactionalCommandContextDao(session),
personRepository = TransactionalPersonDao(session),
inntektskilderRepository = TransactionalInntektskilderDao(session),
inntektskilderRepository = InntektskilderDao(session),
arbeidsforholdRepository = TransactionalArbeidsforholdDao(session),
egenAnsattRepository = TransactionalEgenAnsattDao(session),
utbetalingRepository = TransactionalUtbetalingDao(session),
Expand Down
4 changes: 2 additions & 2 deletions spesialist-selve/src/test/kotlin/DatabaseIntegrationTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import no.nav.helse.AbstractDatabaseTest
import no.nav.helse.db.AnnulleringDao
import no.nav.helse.db.BehandlingsstatistikkDao
import no.nav.helse.db.EgenskapForDatabase
import no.nav.helse.db.InntektskilderDao
import no.nav.helse.db.NotatDao
import no.nav.helse.db.OpptegnelseDao
import no.nav.helse.db.PgHistorikkinnslagRepository
Expand All @@ -20,7 +21,6 @@ import no.nav.helse.db.SaksbehandlerDao
import no.nav.helse.db.StansAutomatiskBehandlingDao
import no.nav.helse.db.TildelingDao
import no.nav.helse.db.TotrinnsvurderingDao
import no.nav.helse.db.TransactionalInntektskilderDao
import no.nav.helse.januar
import no.nav.helse.mediator.oppgave.OppgaveDao
import no.nav.helse.modell.CommandContextDao
Expand Down Expand Up @@ -167,7 +167,7 @@ abstract class DatabaseIntegrationTest : AbstractDatabaseTest() {
internal val annulleringDao = AnnulleringDao(dataSource)
private val personService = PersonService(dataSource)
private val session = sessionOf(dataSource, returnGeneratedKey = true)
private val inntektskilderDao = TransactionalInntektskilderDao(session)
private val inntektskilderDao = InntektskilderDao(session)

@AfterEach
fun lukkSession() =
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
package no.nav.helse.db

import DatabaseIntegrationTest
import com.fasterxml.jackson.module.kotlin.readValue
import kotliquery.Session
import kotliquery.sessionOf
import no.nav.helse.HelseDao.Companion.asSQL
import no.nav.helse.HelseDao.Companion.single
import no.nav.helse.januar
import no.nav.helse.modell.InntektskildetypeDto
import no.nav.helse.modell.KomplettInntektskildeDto
Expand All @@ -20,9 +24,9 @@ import java.time.LocalDate
import java.time.LocalDateTime
import java.util.UUID

class TxInntektskilderDaoTest: DatabaseIntegrationTest() {
internal class InntektskilderDaoTest : DatabaseIntegrationTest() {
private val session = sessionOf(dataSource, returnGeneratedKey = true)
private val dao = TransactionalInntektskilderDao(session)
private val dao = InntektskilderDao(session)
private val avviksvurderingDao = AvviksvurderingDao(dataSource)

@Test
Expand Down Expand Up @@ -75,9 +79,8 @@ class TxInntektskilderDaoTest: DatabaseIntegrationTest() {
skjæringstidspunkt = 1.januar,
opprettet = LocalDateTime.now(),
avviksprosent = 0.0,
sammenligningsgrunnlag = SammenligningsgrunnlagDto(600_000.0,
listOf(InnrapportertInntektDto(organisasjonsnummer, emptyList())
)
sammenligningsgrunnlag = SammenligningsgrunnlagDto(
600_000.0, listOf(InnrapportertInntektDto(organisasjonsnummer, emptyList()))
),
beregningsgrunnlag = BeregningsgrunnlagDto(600_000.0, emptyList())
)
Expand All @@ -102,8 +105,10 @@ class TxInntektskilderDaoTest: DatabaseIntegrationTest() {
skjæringstidspunkt = 1.januar,
opprettet = LocalDateTime.now(),
avviksprosent = 0.0,
sammenligningsgrunnlag = SammenligningsgrunnlagDto(600_000.0,
listOf(InnrapportertInntektDto(organisasjonsnummer, emptyList())
sammenligningsgrunnlag = SammenligningsgrunnlagDto(
600_000.0,
listOf(
InnrapportertInntektDto(organisasjonsnummer, emptyList())
)
),
beregningsgrunnlag = BeregningsgrunnlagDto(600_000.0, emptyList())
Expand Down Expand Up @@ -144,19 +149,40 @@ class TxInntektskilderDaoTest: DatabaseIntegrationTest() {
)
)
)
session.finnInntektskilde(organisasjonsnummer1).let { første ->
checkNotNull(første)
assertEquals(organisasjonsnummer1, første.organisasjonsnummer)
assertEquals(navn1, første.navn)
assertEquals(bransjer1, første.bransjer)
}
session.finnInntektskilde(organisasjonsnummer2).let { andre ->
checkNotNull(andre)
assertEquals(organisasjonsnummer2, andre.organisasjonsnummer)
assertEquals(navn2, andre.navn)
assertEquals(bransjer2, andre.bransjer)
}
}

val funnet = dao.finnInntektskilder(lagFødselsnummer(), listOf(organisasjonsnummer1, organisasjonsnummer2))
assertEquals(2, funnet.size)
val første = funnet[0]
val andre = funnet[1]
check(første is KomplettInntektskildeDto && andre is KomplettInntektskildeDto)

assertEquals(organisasjonsnummer1, første.organisasjonsnummer)
assertEquals(navn1, første.navn)
assertEquals(bransjer1, første.bransjer)

assertEquals(organisasjonsnummer2, andre.organisasjonsnummer)
assertEquals(navn2, andre.navn)
assertEquals(bransjer2, andre.bransjer)
private fun Session.finnInntektskilde(orgnummer: String) = asSQL(
"""
select orgnummer, navn, bransjer
from arbeidsgiver
join arbeidsgiver_bransjer ab on arbeidsgiver.bransjer_ref = ab.id
join arbeidsgiver_navn an on arbeidsgiver.navn_ref = an.id
where orgnummer = :orgnummer
""".trimIndent(),
"orgnummer" to orgnummer.toLong()
).single(this) { row ->
ArbeidsgiverDto(
organisasjonsnummer = row.string("orgnummer"),
navn = row.string("navn"),
bransjer = objectMapper.readValue(row.string("bransjer")),
)
}

private data class ArbeidsgiverDto(
val organisasjonsnummer: String,
val navn: String,
val bransjer: List<String>,
)
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package no.nav.helse.modell.arbeidsgiver

import DatabaseIntegrationTest
import kotliquery.sessionOf
import no.nav.helse.db.TransactionalInntektskilderDao
import no.nav.helse.db.InntektskilderDao
import no.nav.helse.modell.InntektskildetypeDto.ORDINÆR
import no.nav.helse.modell.KomplettInntektskildeDto
import org.junit.jupiter.api.Assertions.assertEquals
Expand All @@ -11,7 +11,7 @@ import org.junit.jupiter.api.Test
import java.time.LocalDate

internal class ArbeidsgiverDaoTest : DatabaseIntegrationTest() {
private val inntektskildeDao = TransactionalInntektskilderDao(sessionOf(dataSource, returnGeneratedKey = true))
private val inntektskildeDao = InntektskilderDao(sessionOf(dataSource, returnGeneratedKey = true))

@Test
fun `kan hente bransjer`() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import no.nav.helse.db.RefusjonselementForDatabase
import no.nav.helse.db.SkjønnsfastsattArbeidsgiverForDatabase
import no.nav.helse.db.SkjønnsfastsattSykepengegrunnlagForDatabase
import no.nav.helse.db.SkjønnsfastsettingstypeForDatabase
import no.nav.helse.db.TransactionalInntektskilderDao
import no.nav.helse.db.InntektskilderDao
import no.nav.helse.januar
import no.nav.helse.modell.InntektskildetypeDto.ORDINÆR
import no.nav.helse.modell.KomplettInntektskildeDto
Expand All @@ -37,7 +37,7 @@ import java.util.UUID

internal class OverstyringDaoTest : DatabaseIntegrationTest() {
private val session = sessionOf(dataSource, returnGeneratedKey = true)
private val inntektskilderDao = TransactionalInntektskilderDao(session)
private val inntektskilderDao = InntektskilderDao(session)
private val PERSON_FORNAVN = "Per"
private val PERSON_ETTERNAVN = "Son"
private val PERSON_FØDSELSDATO = LocalDate.of(1998, 4, 20)
Expand Down

0 comments on commit ca5d40a

Please sign in to comment.