Skip to content

Commit

Permalink
Hent orgnr fra forespørsel under tilgangskontroll (#434)
Browse files Browse the repository at this point in the history
* Hent orgnr fra forespørsel under tilgangskontroll

* Fjern ubrukt behovtype

* Fjern utdatert test
  • Loading branch information
bjerga authored Feb 16, 2024
1 parent e5b30a9 commit 76276e5
Show file tree
Hide file tree
Showing 11 changed files with 119 additions and 283 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import no.nav.helse.rapids_rivers.RapidsConnection
import no.nav.helsearbeidsgiver.felles.db.exposed.Database
import no.nav.helsearbeidsgiver.felles.rapidsrivers.registerShutdownLifecycle
import no.nav.helsearbeidsgiver.inntektsmelding.db.river.HentAapenImRiver
import no.nav.helsearbeidsgiver.inntektsmelding.db.river.HentOrgnrLoeser
import no.nav.helsearbeidsgiver.inntektsmelding.db.river.HentPersistertLoeser
import no.nav.helsearbeidsgiver.inntektsmelding.db.river.LagreAapenImRiver
import no.nav.helsearbeidsgiver.inntektsmelding.db.river.LagreEksternInntektsmeldingLoeser
Expand Down Expand Up @@ -64,9 +63,6 @@ fun RapidsConnection.createDbRivers(
logger.info("Starter ${PersisterOppgaveLoeser::class.simpleName}...")
PersisterOppgaveLoeser(this, forespoerselRepo)

logger.info("Starter ${HentOrgnrLoeser::class.simpleName}...")
HentOrgnrLoeser(this, forespoerselRepo)

logger.info("Starter ${NotifikasjonHentIdLoeser::class.simpleName}...")
NotifikasjonHentIdLoeser(this, forespoerselRepo)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,18 +76,6 @@ class ForespoerselRepository(private val db: Database) {
}
}

fun hentOrgnr(forespoerselId: UUID): String? {
val requestTimer = requestLatency.labels("hentOrgnr").startTimer()
return transaction(db) {
ForespoerselEntitet
.selectAll()
.where { ForespoerselEntitet.forespoerselId eq forespoerselId.toString() }
.firstOrNull(ForespoerselEntitet.orgnr)
}.also {
requestTimer.observeDuration()
}
}

fun lagreForespoersel(forespoerselId: String, organisasjonsnummer: String) {
val requestTimer = requestLatency.labels("lagreForespoersel").startTimer()
transaction(db) {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ enum class BehovType {

OPPRETT_AAPEN_SAK,

HENT_IM_ORGNR,
HENT_EKSTERN_INNTEKTSMELDING,
LAGRE_EKSTERN_INNTEKTSMELDING,
TRENGER_FORESPØRSEL
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,20 @@ package no.nav.helsearbeidsgiver.inntektsmelding.integrasjonstest

import io.kotest.matchers.nulls.shouldNotBeNull
import io.kotest.matchers.shouldBe
import io.mockk.clearAllMocks
import io.mockk.coEvery
import io.mockk.every
import no.nav.helsearbeidsgiver.felles.BehovType
import no.nav.helsearbeidsgiver.felles.EventName
import no.nav.helsearbeidsgiver.felles.Key
import no.nav.helsearbeidsgiver.felles.Tilgang
import no.nav.helsearbeidsgiver.felles.rapidsrivers.model.Fail
import no.nav.helsearbeidsgiver.felles.json.lesOrNull
import no.nav.helsearbeidsgiver.felles.test.mock.mockTrengerInntekt
import no.nav.helsearbeidsgiver.felles.utils.randomUuid
import no.nav.helsearbeidsgiver.inntektsmelding.integrasjonstest.utils.EndToEndTest
import no.nav.helsearbeidsgiver.utils.json.fromJson
import org.junit.jupiter.api.BeforeAll
import no.nav.helsearbeidsgiver.utils.json.serializer.UuidSerializer
import no.nav.helsearbeidsgiver.utils.test.mock.mockStatic
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance
Expand All @@ -18,14 +24,10 @@ import java.util.UUID
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class TilgangskontrollIT : EndToEndTest() {

@BeforeAll
fun beforeAll() {
forespoerselRepository.lagreForespoersel(Mock.forespoerselIdMedTilgang.toString(), Mock.ORGNR_MED_TILGANG)
forespoerselRepository.lagreForespoersel(Mock.forespoerselIdUtenTilgang.toString(), Mock.ORGNR_UTEN_TILGANG)
}

@BeforeEach
fun beforeEach() {
clearAllMocks()

coEvery {
altinnClient.harRettighetForOrganisasjon(Mock.INNLOGGET_FNR, Mock.ORGNR_MED_TILGANG)
} returns true
Expand All @@ -37,9 +39,32 @@ class TilgangskontrollIT : EndToEndTest() {

@Test
fun `forespoersel - skal få tilgang`() {
tilgangProducer.publishForespoerselId(Mock.forespoerselIdMedTilgang, Mock.INNLOGGET_FNR)
val transaksjonId: UUID = UUID.randomUUID()

Thread.sleep(6000)
mockForespoerselSvarFraHelsebro(
eventName = EventName.TILGANG_FORESPOERSEL_REQUESTED,
transaksjonId = transaksjonId,
forespoerselId = Mock.forespoerselId,
forespoersel = mockTrengerInntekt().copy(
orgnr = Mock.ORGNR_MED_TILGANG
)
)

mockStatic(::randomUuid) {
every { randomUuid() } returns transaksjonId

tilgangProducer.publishForespoerselId(Mock.forespoerselId, Mock.INNLOGGET_FNR)

Thread.sleep(6000)
}

messages.filter(EventName.TILGANG_FORESPOERSEL_REQUESTED)
.filter(BehovType.HENT_TRENGER_IM)
.firstAsMap()
.also {
Key.UUID.lesOrNull(UuidSerializer, it) shouldBe transaksjonId
Key.FORESPOERSEL_ID.lesOrNull(UuidSerializer, it) shouldBe Mock.forespoerselId
}

val result = messages.filter(EventName.TILGANG_FORESPOERSEL_REQUESTED)
.filter(Key.TILGANG)
Expand All @@ -54,9 +79,24 @@ class TilgangskontrollIT : EndToEndTest() {

@Test
fun `forespoersel - skal bli nektet tilgang`() {
tilgangProducer.publishForespoerselId(Mock.forespoerselIdUtenTilgang, Mock.INNLOGGET_FNR)
val transaksjonId: UUID = UUID.randomUUID()

Thread.sleep(4000)
mockForespoerselSvarFraHelsebro(
eventName = EventName.TILGANG_FORESPOERSEL_REQUESTED,
transaksjonId = transaksjonId,
forespoerselId = Mock.forespoerselId,
forespoersel = mockTrengerInntekt().copy(
orgnr = Mock.ORGNR_UTEN_TILGANG
)
)

mockStatic(::randomUuid) {
every { randomUuid() } returns transaksjonId

tilgangProducer.publishForespoerselId(Mock.forespoerselId, Mock.INNLOGGET_FNR)

Thread.sleep(4000)
}

val result = messages.filter(EventName.TILGANG_FORESPOERSEL_REQUESTED)
.filter(Key.TILGANG)
Expand All @@ -69,22 +109,6 @@ class TilgangskontrollIT : EndToEndTest() {
tilgang shouldBe Tilgang.IKKE_TILGANG
}

@Test
fun `forespoersel - skal få melding om at forespørsel ikke finnes`() {
tilgangProducer.publishForespoerselId(Mock.forespoerselIdFinnesIkke, Mock.INNLOGGET_FNR)

Thread.sleep(4000)

val fail = messages.filter(EventName.TILGANG_FORESPOERSEL_REQUESTED)
.filterFeil()
.firstAsMap()
.get(Key.FAIL)
.shouldNotBeNull()
.fromJson(Fail.serializer())

fail.feilmelding shouldBe "Fant ingen orgnr for forespørsel-ID '${Mock.forespoerselIdFinnesIkke}'."
}

@Test
fun `organisasjon - skal få tilgang`() {
tilgangProducer.publishOrgnr(Mock.ORGNR_MED_TILGANG, Mock.INNLOGGET_FNR)
Expand Down Expand Up @@ -125,8 +149,6 @@ class TilgangskontrollIT : EndToEndTest() {
const val ORGNR_MED_TILGANG = "654654654"
const val ORGNR_UTEN_TILGANG = "789789789"

val forespoerselIdMedTilgang: UUID = UUID.randomUUID()
val forespoerselIdUtenTilgang: UUID = UUID.randomUUID()
val forespoerselIdFinnesIkke: UUID = UUID.randomUUID()
val forespoerselId: UUID = UUID.randomUUID()
}
}
Loading

0 comments on commit 76276e5

Please sign in to comment.