-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
NAV-22361: Tar i bruk nytt endepunkt for henting av tilgangsstyrte jo…
…urnalposter (#4787) Favro: [NAV-22361](https://favro.com/organization/98c34fb974ce445eac854de0/1844bbac3b6605eacc8f5543?card=NAV-22361) ### 💰 Hva skal gjøres, og hvorfor? Per nå gjøres det ingen ingen kontroll på vår side om hvorvidt det finnes personer med adressebeskyttelse blant dokumentene vi henter for søker. Det finnes en tilgangskontroll for søker i `dokarkiv` som gir feil dersom søker har adressebeskyttelse (kode 6, 7 eller 19) og saksbehandler ikke har tilgang, men `dokarkiv` har ingen sjekk på om barna i en søknad har adressebeskyttelse. Denne tilgangskontrollen er nå lagt inn i `familie-integrasjoner` og ligger bak et nytt endepunkt for henting av tilgangsstyrte journalposter. Tar her i bruk det nye endepunktet. Relatert PR for nytt endepunkt i `familie-integrasjoner`: navikt/familie-integrasjoner#1017 ### ✅ Checklist - [x] Jeg har testet mine endringer i henhold til akseptansekriteriene 🕵️ - [ ] Jeg har config- eller sql-endringer. - [ ] Jeg har skrevet tester. --------- Co-authored-by: Hanne Olsen <[email protected]>
- Loading branch information
1 parent
fee4f48
commit 227ad0a
Showing
10 changed files
with
327 additions
and
50 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
90 changes: 56 additions & 34 deletions
90
.../kotlin/no/nav/familie/ba/sak/integrasjoner/familieintegrasjoner/IntegrasjonClientTest.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,60 +1,82 @@ | ||
package no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner | ||
|
||
import io.mockk.every | ||
import com.github.tomakehurst.wiremock.WireMockServer | ||
import com.github.tomakehurst.wiremock.client.WireMock | ||
import com.github.tomakehurst.wiremock.core.WireMockConfiguration | ||
import io.mockk.mockk | ||
import no.nav.familie.ba.sak.datagenerator.oppgave.lagEnhet | ||
import no.nav.familie.ba.sak.kjerne.arbeidsfordeling.BarnetrygdEnhet | ||
import no.nav.familie.kontrakter.felles.BrukerIdType | ||
import no.nav.familie.kontrakter.felles.NavIdent | ||
import no.nav.familie.kontrakter.felles.Ressurs | ||
import no.nav.familie.kontrakter.felles.enhet.Enhet | ||
import no.nav.familie.kontrakter.felles.Tema | ||
import no.nav.familie.kontrakter.felles.journalpost.Bruker | ||
import no.nav.familie.kontrakter.felles.journalpost.JournalposterForBrukerRequest | ||
import org.assertj.core.api.Assertions.assertThat | ||
import org.junit.jupiter.api.BeforeEach | ||
import org.junit.jupiter.api.Test | ||
import org.springframework.http.HttpMethod | ||
import org.springframework.http.HttpStatus | ||
import org.springframework.http.ResponseEntity | ||
import org.springframework.boot.web.client.RestTemplateBuilder | ||
import org.springframework.web.client.RestOperations | ||
import org.springframework.web.client.exchange | ||
import java.net.URI | ||
|
||
class IntegrasjonClientTest { | ||
private val mockedRestOperations: RestOperations = mockk() | ||
private val restOperations: RestOperations = RestTemplateBuilder().build() | ||
private val baseUri = URI("http://localhost:8080") | ||
private val integrasjonClient: IntegrasjonClient = | ||
IntegrasjonClient( | ||
baseUri, | ||
mockedRestOperations, | ||
) | ||
private lateinit var wiremockServerItem: WireMockServer | ||
private lateinit var integrasjonClient: IntegrasjonClient | ||
|
||
@BeforeEach | ||
fun initClass() { | ||
wiremockServerItem = WireMockServer(WireMockConfiguration.wireMockConfig().dynamicPort()) | ||
wiremockServerItem.start() | ||
integrasjonClient = IntegrasjonClient(URI.create(wiremockServerItem.baseUrl()), restOperations) | ||
} | ||
|
||
@Test | ||
fun `skal hente enheter som NAV-ident har tilgang til`() { | ||
fun `hentEnheterSomNavIdentHarTilgangTil - skal hente enheter som NAV-ident har tilgang til`() { | ||
// Arrange | ||
val navIdent = NavIdent("1") | ||
|
||
val enhet1 = lagEnhet(BarnetrygdEnhet.VADSØ.enhetsnummer) | ||
val enhet2 = lagEnhet(BarnetrygdEnhet.OSLO.enhetsnummer) | ||
|
||
every { | ||
mockedRestOperations.exchange<Ressurs<List<Enhet>>>( | ||
eq(URI("$baseUri/enhetstilganger")), | ||
eq(HttpMethod.POST), | ||
any(), | ||
) | ||
} returns | ||
ResponseEntity<Ressurs<List<Enhet>>>( | ||
Ressurs.success( | ||
listOf( | ||
enhet1, | ||
enhet2, | ||
), | ||
), | ||
HttpStatus.OK, | ||
) | ||
wiremockServerItem.stubFor( | ||
WireMock | ||
.post(WireMock.urlEqualTo("/enhetstilganger")) | ||
.willReturn(WireMock.okJson(readFile("enheterNavIdentHarTilgangTilResponse.json"))), | ||
) | ||
|
||
// Act | ||
val enheter = integrasjonClient.hentBehandlendeEnheterSomNavIdentHarTilgangTil(navIdent) | ||
|
||
// Assert | ||
assertThat(enheter).hasSize(2) | ||
assertThat(enheter).contains(enhet1, enhet2) | ||
assertThat(enheter).anySatisfy { | ||
assertThat(it.enhetsnummer).isEqualTo(BarnetrygdEnhet.VADSØ.enhetsnummer) | ||
assertThat(it.enhetsnavn).isEqualTo(BarnetrygdEnhet.VADSØ.enhetsnavn) | ||
} | ||
assertThat(enheter).anySatisfy { | ||
assertThat(it.enhetsnummer).isEqualTo(BarnetrygdEnhet.OSLO.enhetsnummer) | ||
assertThat(it.enhetsnavn).isEqualTo(BarnetrygdEnhet.OSLO.enhetsnavn) | ||
} | ||
} | ||
|
||
@Test | ||
fun `hentTilgangsstyrteJournalposterForBruker - skal hente tilgangsstyrte journalposter for bruker`() { | ||
// Arrange | ||
wiremockServerItem.stubFor( | ||
WireMock | ||
.post(WireMock.urlEqualTo("/journalpost/tilgangsstyrt/baks")) | ||
.willReturn(WireMock.okJson(readFile("hentTilgangsstyrteJournalposterForBruker.json"))), | ||
) | ||
|
||
// Act | ||
val tilgangsstyrteJournalposter = integrasjonClient.hentTilgangsstyrteJournalposterForBruker(JournalposterForBrukerRequest(brukerId = Bruker(id = "12345678910", type = BrukerIdType.FNR), antall = 100, tema = listOf(Tema.BAR))) | ||
|
||
// Assert | ||
assertThat(tilgangsstyrteJournalposter).hasSize(1) | ||
val tilgangsstyrtJournalpost = tilgangsstyrteJournalposter.single() | ||
assertThat(tilgangsstyrtJournalpost.journalpost.journalpostId).isEqualTo("453492634") | ||
assertThat(tilgangsstyrtJournalpost.journalpost.tema).isEqualTo(Tema.BAR.name) | ||
assertThat(tilgangsstyrtJournalpost.journalpost.kanal).isEqualTo("NAV_NO") | ||
assertThat(tilgangsstyrtJournalpost.harTilgang).isTrue | ||
} | ||
|
||
private fun readFile(filnavn: String): String = this::class.java.getResource("/familieintegrasjoner/json/$filnavn").readText() | ||
} |
71 changes: 71 additions & 0 deletions
71
...av/familie/ba/sak/integrasjoner/journalføring/InnkommendeJournalføringServiceEnhetTest.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
package no.nav.familie.ba.sak.integrasjoner.journalføring | ||
|
||
import io.mockk.every | ||
import io.mockk.mockk | ||
import no.nav.familie.ba.sak.integrasjoner.familieintegrasjoner.IntegrasjonClient | ||
import no.nav.familie.ba.sak.integrasjoner.journalføring.domene.JournalføringRepository | ||
import no.nav.familie.ba.sak.integrasjoner.lagTilgangsstyrtJournalpost | ||
import no.nav.familie.ba.sak.kjerne.behandling.BehandlingHentOgPersisterService | ||
import no.nav.familie.ba.sak.kjerne.behandling.domene.BehandlingSøknadsinfoService | ||
import no.nav.familie.ba.sak.kjerne.fagsak.FagsakService | ||
import no.nav.familie.ba.sak.kjerne.logg.LoggService | ||
import no.nav.familie.ba.sak.kjerne.steg.StegService | ||
import no.nav.familie.kontrakter.felles.BrukerIdType | ||
import no.nav.familie.kontrakter.felles.Tema | ||
import no.nav.familie.kontrakter.felles.journalpost.Bruker | ||
import no.nav.familie.kontrakter.felles.journalpost.JournalposterForBrukerRequest | ||
import org.assertj.core.api.Assertions.assertThat | ||
import org.junit.jupiter.api.Test | ||
|
||
class InnkommendeJournalføringServiceEnhetTest { | ||
private val mockedIntegrasjonClient: IntegrasjonClient = mockk() | ||
private val mockedFagsakService: FagsakService = mockk() | ||
private val mockedBehandlingHentOgPersisterService: BehandlingHentOgPersisterService = mockk() | ||
private val mockedJournalføringRepository: JournalføringRepository = mockk() | ||
private val mockedLoggService: LoggService = mockk() | ||
private val mockedStegService: StegService = mockk() | ||
private val mockedJournalføringMetrikk: JournalføringMetrikk = mockk() | ||
private val mockedBehandlingSøknadsinfoService: BehandlingSøknadsinfoService = mockk() | ||
private val innkommendeJournalføringService: InnkommendeJournalføringService = | ||
InnkommendeJournalføringService( | ||
integrasjonClient = mockedIntegrasjonClient, | ||
fagsakService = mockedFagsakService, | ||
behandlingHentOgPersisterService = mockedBehandlingHentOgPersisterService, | ||
journalføringRepository = mockedJournalføringRepository, | ||
loggService = mockedLoggService, | ||
stegService = mockedStegService, | ||
journalføringMetrikk = mockedJournalføringMetrikk, | ||
behandlingSøknadsinfoService = mockedBehandlingSøknadsinfoService, | ||
) | ||
|
||
@Test | ||
fun `skal hente og returnere tilgangsstyrte journalposter`() { | ||
// Arrange | ||
val brukerId = "12345678910" | ||
val journalpostId = "123" | ||
val journalposter = | ||
listOf( | ||
lagTilgangsstyrtJournalpost( | ||
personIdent = brukerId, | ||
journalpostId = journalpostId, | ||
harTilgang = true, | ||
), | ||
) | ||
|
||
every { | ||
mockedIntegrasjonClient.hentTilgangsstyrteJournalposterForBruker( | ||
JournalposterForBrukerRequest( | ||
antall = 1000, | ||
brukerId = Bruker(id = brukerId, type = BrukerIdType.FNR), | ||
tema = listOf(Tema.BAR), | ||
), | ||
) | ||
} returns journalposter | ||
|
||
// Act | ||
val journalposterForBruker = innkommendeJournalføringService.hentJournalposterForBruker(brukerId) | ||
|
||
// Assert | ||
assertThat(journalposterForBruker.first { it.journalpost.journalpostId === journalpostId }.harTilgang).isTrue | ||
} | ||
} |
Oops, something went wrong.