Skip to content

Commit

Permalink
TFP-3397 mock for ereg/organisasjon rs (#410)
Browse files Browse the repository at this point in the history
* TFP-3397 mock for ereg/organisasjon rs

* NOJIRA blings på array-size
  • Loading branch information
jolarsen authored May 29, 2020
1 parent 27b2c11 commit aa172e3
Show file tree
Hide file tree
Showing 4 changed files with 217 additions and 0 deletions.
4 changes: 4 additions & 0 deletions mocks/organisasjon-mock/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
<groupId>no.nav.foreldrepenger.vtp</groupId>
<artifactId>core</artifactId>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
</dependency>

</dependencies>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,146 @@
package no.nav.tjeneste.virksomhet.organisasjon.rs;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.Objects;
import java.util.stream.Stream;

import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonProperty;

import no.nav.foreldrepenger.vtp.testmodell.organisasjon.OrganisasjonModell;

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
@JsonAutoDetect(getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE, fieldVisibility = JsonAutoDetect.Visibility.ANY)
public class OrganisasjonJson {

@JsonProperty("organisasjonsnummer")
private String organisasjonsnummer;
@JsonProperty("type")
private String type;
@JsonProperty("navn")
private Navn navn;
@JsonProperty("organisasjonDetaljer")
private OrganisasjonDetaljer organisasjonDetaljer;

public OrganisasjonJson(OrganisasjonModell org) {
this.type = "Virksomhet";
this.organisasjonsnummer = org.getOrgnummer();
this.navn = new Navn();
var max = Arrays.stream(org.getNavn().getNavnelinje()).count();
if (max > 0)
this.navn.navnelinje1 = org.getNavn().getNavnelinje()[0];
if (max > 1)
this.navn.navnelinje2 = org.getNavn().getNavnelinje()[1];
if (max > 2)
this.navn.navnelinje3 = org.getNavn().getNavnelinje()[2];
if (max > 3)
this.navn.navnelinje4 = org.getNavn().getNavnelinje()[3];
if (max > 4)
this.navn.navnelinje5 = org.getNavn().getNavnelinje()[4];
this.organisasjonDetaljer = new OrganisasjonDetaljer();
if (org.getOrganisasjonDetaljer() != null && org.getOrganisasjonDetaljer().getRegistreringsDato() != null) {
this.organisasjonDetaljer.registreringsdato = org.getOrganisasjonDetaljer().getRegistreringsDato().atStartOfDay();
} else {
this.organisasjonDetaljer.registreringsdato = LocalDateTime.now().minusYears(1);
}
}

private OrganisasjonJson() {
this.type = "Virksomhet";
}

public String getOrganisasjonsnummer() {
return organisasjonsnummer;
}

public String getType() {
return type;
}

public String getNavn() {
return navn != null ? navn.getNavn() : null;
}

public LocalDate getRegistreringsdato() {
return organisasjonDetaljer != null ? organisasjonDetaljer.getRegistreringsdato().toLocalDate() : null;
}

public LocalDate getOpphørsdato() {
return organisasjonDetaljer != null ? organisasjonDetaljer.getOpphoersdato() : null;
}

@Override
public String toString() {
return "OrganisasjonJson{" +
"organisasjonsnummer='" + organisasjonsnummer + '\'' +
", type='" + type + '\'' +
", navn=" + navn +
", organisasjonDetaljer=" + organisasjonDetaljer +
'}';
}

static class Navn {

@JsonProperty("navnelinje1")
private String navnelinje1;
@JsonProperty("navnelinje2")
private String navnelinje2;
@JsonProperty("navnelinje3")
private String navnelinje3;
@JsonProperty("navnelinje4")
private String navnelinje4;
@JsonProperty("navnelinje5")
private String navnelinje5;

private Navn() {
}

private String getNavn() {
return Stream.of(navnelinje1, navnelinje2, navnelinje3, navnelinje4, navnelinje5)
.filter(Objects::nonNull)
.map(String::trim)
.filter(n -> !n.isEmpty())
.reduce("", (a, b) -> a + " " + b).trim();
}

@Override
public String toString() {
return "Navn{" +
"navn='" + getNavn() + '\'' +
'}';
}
}

static class OrganisasjonDetaljer {

@JsonProperty("registreringsdato")
private LocalDateTime registreringsdato;
@JsonProperty("opphoersdato")
private LocalDate opphoersdato;

private OrganisasjonDetaljer() {
}

private LocalDateTime getRegistreringsdato() {
return registreringsdato;
}

private LocalDate getOpphoersdato() {
return opphoersdato;
}

@Override
public String toString() {
return "OrganisasjonDetaljer{" +
"registreringsdato=" + registreringsdato +
", opphoersdato=" + opphoersdato +
'}';
}
}
}

Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
package no.nav.tjeneste.virksomhet.organisasjon.rs;

import java.util.Optional;

import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import no.nav.foreldrepenger.vtp.testmodell.organisasjon.OrganisasjonModell;
import no.nav.foreldrepenger.vtp.testmodell.repo.TestscenarioBuilderRepository;

@Path("ereg/api/v1/organisasjon")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
@Api(tags = {"Enhetsregister Rest"})
public class OrganisasjonRSV1Mock {

private static final Logger LOG = LoggerFactory.getLogger(OrganisasjonRSV1Mock.class);


@Context
private TestscenarioBuilderRepository scenarioRepository;

@SuppressWarnings("unused")
@GET
@Path("/{orgnummer}")
@ApiOperation(value = "Henter informasjon for et organisasjonsnummer")
@ApiImplicitParams({
@ApiImplicitParam(name = "inkluderHierarki", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "inkluderHistorikk", dataType = "string", paramType = "query")
})
public Response hentOrganisasjon(@PathParam("orgnummer") String orgnummer,
@Context HttpHeaders httpHeaders,
@Context UriInfo uriInfo) {
if (orgnummer != null) {
LOG.info("EREG REST {}", orgnummer);
Optional<OrganisasjonModell> organisasjonModell = scenarioRepository.getOrganisasjon(orgnummer);
if (organisasjonModell.isPresent()) {
OrganisasjonModell modell = organisasjonModell.get();
OrganisasjonJson organisasjon = new OrganisasjonJson(modell);
return Response.ok(organisasjon).build();
} else {
return Response.ok().build();
}
} else {
throw new IllegalArgumentException("Orgnummer ikke angitt");
}
}

}

Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
import no.nav.tjeneste.fpformidling.FpFormidlingMock;
import no.nav.tjeneste.virksomhet.arbeidsfordeling.rest.ArbeidsfordelingRestMock;
import no.nav.tjeneste.virksomhet.infotrygd.rest.InfotrygdGrunnlagMock;
import no.nav.tjeneste.virksomhet.organisasjon.rs.OrganisasjonRSV1Mock;
import no.nav.tjeneste.virksomhet.sak.rs.SakRestMock;
import no.nav.tps.proxy.api.v1.innsyn.InnsynMock;
import no.nav.vtp.DummyRestTjeneste;
Expand Down Expand Up @@ -106,6 +107,7 @@ public Set<Class<?>> getClasses() {
classes.add(MedlemskapsunntakMock.class);
classes.add(OppgaveKontantstotteMockImpl.class);
classes.add(OppgaveMockImpl.class);
classes.add(OrganisasjonRSV1Mock.class);
classes.add(AktoerIdentMock.class);
classes.add(PårørendeSykdomMock.class);
classes.add(InnsynMock.class);
Expand Down

0 comments on commit aa172e3

Please sign in to comment.