From 7d1b54df92aa55d75543650b4f83c1aca3e87bb4 Mon Sep 17 00:00:00 2001 From: "Kristen.Herum" Date: Fri, 1 Nov 2024 10:56:13 +0100 Subject: [PATCH] Add TestConfig and Oppdragsdata utility classes Added TestConfig.java to provide Spring test configuration, including beans for OppdragService, OppdragConsumer, and MapperFacade. Created Oppdragsdata.java in utility package to facilitate the construction of OppdragRequest and SendInnOppdragResponse objects, enhancing the testing structure. --- .../config/OppdragWsConfiguration.java | 7 +- .../consumer/OppdragConsumer.java | 12 +- .../mapper/LocalDateCustomMapping.java | 12 +- .../mapper/LocalDateTimeCustomMapping.java | 12 +- .../mapper/OppdragRequestMappingStrategy.java | 14 +- .../OppdragResponseMappingStrategy.java | 43 ++ .../service/OppdragService.java | 2 +- .../oppdragservice/config/TestConfig.java | 37 ++ .../OppdragRequestMappingStrategyTest.java | 150 +----- .../OppdragResponseMappingStrategyTest.java | 156 ++++++ .../service/OppdragServiceTest.java | 37 ++ .../oppdragservice/utilty/Oppdragsdata.java | 294 +++++++++++ .../libs/dto/oppdragservice/v1/Oppdrag.java | 460 ++++++++++++++++++ .../dto/oppdragservice/v1/OppdragRequest.java | 446 +---------------- .../oppdragservice/v1/OppdragResponse.java | 25 + 15 files changed, 1108 insertions(+), 599 deletions(-) create mode 100644 apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/mapper/OppdragResponseMappingStrategy.java create mode 100644 apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/config/TestConfig.java create mode 100644 apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/mapper/OppdragResponseMappingStrategyTest.java create mode 100644 apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/service/OppdragServiceTest.java create mode 100644 apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/utilty/Oppdragsdata.java create mode 100644 libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/Oppdrag.java create mode 100644 libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/OppdragResponse.java diff --git a/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/config/OppdragWsConfiguration.java b/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/config/OppdragWsConfiguration.java index 1def57c64d0..2cead073f8d 100644 --- a/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/config/OppdragWsConfiguration.java +++ b/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/config/OppdragWsConfiguration.java @@ -5,22 +5,23 @@ import org.springframework.context.annotation.Configuration; import org.springframework.oxm.jaxb.Jaxb2Marshaller; import org.springframework.ws.config.annotation.EnableWs; +import org.springframework.ws.config.annotation.WsConfigurerAdapter; @EnableWs @Configuration -public class OppdragWsConfiguration { +public class OppdragWsConfiguration extends WsConfigurerAdapter { @Bean public Jaxb2Marshaller marshaller() { Jaxb2Marshaller marshaller = new Jaxb2Marshaller(); // this package must match the package in the specified in - // pom.xml + // build.gradle marshaller.setContextPath("no.nav.testnav.oppdragservice.wsdl"); return marshaller; } @Bean - public OppdragClient countryClient(Jaxb2Marshaller marshaller) { + public OppdragClient oppdragClient(Jaxb2Marshaller marshaller) { var client = new OppdragClient(); client.setDefaultUri("http://localhost:8080/ws"); diff --git a/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/consumer/OppdragConsumer.java b/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/consumer/OppdragConsumer.java index 67cfde505c6..44135515485 100644 --- a/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/consumer/OppdragConsumer.java +++ b/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/consumer/OppdragConsumer.java @@ -1,11 +1,19 @@ package no.nav.testnav.oppdragservice.consumer; +import lombok.extern.slf4j.Slf4j; +import no.nav.testnav.oppdragservice.wsdl.SendInnOppdragRequest; +import no.nav.testnav.oppdragservice.wsdl.SendInnOppdragResponse; import org.springframework.stereotype.Service; +import org.springframework.ws.client.core.support.WebServiceGatewaySupport; +import org.springframework.ws.soap.client.core.SoapActionCallback; +@Slf4j @Service -public class OppdragConsumer { +public class OppdragConsumer extends WebServiceGatewaySupport { - public void sendOppdrag(String xmlPayload) { + public SendInnOppdragResponse sendOppdrag(SendInnOppdragRequest melding) { + return (SendInnOppdragResponse) getWebServiceTemplate().marshalSendAndReceive("", melding, + new SoapActionCallback("no.nav.testnav.oppdragservice.wsdl.SendInnOppdragResponse")); } } diff --git a/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/mapper/LocalDateCustomMapping.java b/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/mapper/LocalDateCustomMapping.java index 75f3667c028..cbdb8035f74 100644 --- a/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/mapper/LocalDateCustomMapping.java +++ b/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/mapper/LocalDateCustomMapping.java @@ -1,8 +1,8 @@ package no.nav.testnav.oppdragservice.mapper; import lombok.extern.slf4j.Slf4j; -import ma.glasnost.orika.CustomConverter; import ma.glasnost.orika.MappingContext; +import ma.glasnost.orika.converter.BidirectionalConverter; import ma.glasnost.orika.metadata.Type; import org.springframework.stereotype.Component; @@ -11,13 +11,19 @@ @Slf4j @Component -public class LocalDateCustomMapping extends CustomConverter { +public class LocalDateCustomMapping extends BidirectionalConverter { private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("dd-MM-yyyy"); @Override - public String convert(LocalDate localDate, Type type, MappingContext mappingContext) { + public String convertTo(LocalDate localDate, Type type, MappingContext mappingContext) { return FORMATTER.format(localDate); } + + @Override + public LocalDate convertFrom(String s, Type type, MappingContext mappingContext) { + + return LocalDate.from(FORMATTER.parse(s)); + } } \ No newline at end of file diff --git a/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/mapper/LocalDateTimeCustomMapping.java b/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/mapper/LocalDateTimeCustomMapping.java index 57ec944d51a..9cb6743313a 100644 --- a/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/mapper/LocalDateTimeCustomMapping.java +++ b/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/mapper/LocalDateTimeCustomMapping.java @@ -1,8 +1,8 @@ package no.nav.testnav.oppdragservice.mapper; import lombok.extern.slf4j.Slf4j; -import ma.glasnost.orika.CustomConverter; import ma.glasnost.orika.MappingContext; +import ma.glasnost.orika.converter.BidirectionalConverter; import ma.glasnost.orika.metadata.Type; import org.springframework.stereotype.Component; @@ -11,13 +11,19 @@ @Slf4j @Component -public class LocalDateTimeCustomMapping extends CustomConverter { +public class LocalDateTimeCustomMapping extends BidirectionalConverter { private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd-HH.mm.ss.SSSSSS"); @Override - public String convert(LocalDateTime localDateTime, Type type, MappingContext mappingContext) { + public String convertTo(LocalDateTime localDateTime, Type type, MappingContext mappingContext) { return FORMATTER.format(localDateTime); } + + @Override + public LocalDateTime convertFrom(String s, Type type, MappingContext mappingContext) { + + return LocalDateTime.from(FORMATTER.parse(s)); + } } \ No newline at end of file diff --git a/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/mapper/OppdragRequestMappingStrategy.java b/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/mapper/OppdragRequestMappingStrategy.java index 20d440c4423..316d683b523 100644 --- a/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/mapper/OppdragRequestMappingStrategy.java +++ b/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/mapper/OppdragRequestMappingStrategy.java @@ -3,8 +3,8 @@ import ma.glasnost.orika.CustomMapper; import ma.glasnost.orika.MapperFactory; import ma.glasnost.orika.MappingContext; +import no.nav.testnav.libs.dto.oppdragservice.v1.Oppdrag; import no.nav.testnav.libs.dto.oppdragservice.v1.OppdragRequest; -import no.nav.testnav.oppdragservice.wsdl.Oppdrag; import no.nav.testnav.oppdragservice.wsdl.Oppdragslinje; import no.nav.testnav.oppdragservice.wsdl.SendInnOppdragRequest; import no.nav.testnav.oppdragservice.wsdl.SendInnOppdragRequest2; @@ -26,17 +26,17 @@ public void mapAtoB(OppdragRequest source, MappingContext context) { var oppdragRequest = new SendInnOppdragRequest2(); - oppdragRequest.setOppdrag(mapperFacade.map(source, Oppdrag.class, context)); + oppdragRequest.setOppdrag(mapperFacade.map(source.getOppdrag(), no.nav.testnav.oppdragservice.wsdl.Oppdrag.class, context)); destination.setRequest(oppdragRequest); } }) .register(); - factory.classMap(OppdragRequest.class, Oppdrag.class) + factory.classMap(Oppdrag.class, no.nav.testnav.oppdragservice.wsdl.Oppdrag.class) .customize(new CustomMapper<>() { @Override - public void mapAtoB(OppdragRequest source, - Oppdrag destination, + public void mapAtoB(Oppdrag source, + no.nav.testnav.oppdragservice.wsdl.Oppdrag destination, MappingContext context) { if (nonNull(source.getUtbetFrekvens())) { @@ -48,10 +48,10 @@ public void mapAtoB(OppdragRequest source, .byDefault() .register(); - factory.classMap(OppdragRequest.Oppdragslinje.class, Oppdragslinje.class) + factory.classMap(Oppdrag.Oppdragslinje.class, Oppdragslinje.class) .customize(new CustomMapper<>() { @Override - public void mapAtoB(OppdragRequest.Oppdragslinje source, + public void mapAtoB(Oppdrag.Oppdragslinje source, Oppdragslinje destination, MappingContext context) { diff --git a/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/mapper/OppdragResponseMappingStrategy.java b/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/mapper/OppdragResponseMappingStrategy.java new file mode 100644 index 00000000000..a6b74cef50f --- /dev/null +++ b/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/mapper/OppdragResponseMappingStrategy.java @@ -0,0 +1,43 @@ +package no.nav.testnav.oppdragservice.mapper; + +import ma.glasnost.orika.CustomMapper; +import ma.glasnost.orika.MapperFactory; +import ma.glasnost.orika.MappingContext; +import no.nav.testnav.libs.dto.oppdragservice.v1.Oppdrag; +import no.nav.testnav.libs.dto.oppdragservice.v1.OppdragResponse; +import no.nav.testnav.oppdragservice.wsdl.SendInnOppdragResponse; +import org.springframework.stereotype.Component; + +import static java.util.Objects.nonNull; + +@Component +public class OppdragResponseMappingStrategy implements MappingStrategy{ + + @Override + public void register(MapperFactory factory) { + + factory.classMap(SendInnOppdragResponse.class, OppdragResponse.class) + .customize(new CustomMapper<>() { + @Override + public void mapAtoB(SendInnOppdragResponse source, + OppdragResponse destination, + MappingContext context) { + + var oppdrag = source.getResponse().getOppdrag(); + if (nonNull(oppdrag.getUtbetFrekvens())) { + oppdrag.setUtbetFrekvens(oppdrag.getUtbetFrekvens() + .replace("14DG", "_14DG")); + } + + oppdrag.getOppdragslinje().stream() + .filter(oppdragslinje -> nonNull(oppdragslinje.getTypeSats())) + .forEach(oppdragslinje -> + oppdragslinje.setTypeSats(oppdragslinje.getTypeSats() + .replace("14DB","_14DB"))); + + destination.setOppdrag(mapperFacade.map(oppdrag, Oppdrag.class, context)); + } + }) + .register(); + } +} diff --git a/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/service/OppdragService.java b/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/service/OppdragService.java index 109fba28866..ac8a4c8b888 100644 --- a/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/service/OppdragService.java +++ b/apps/oppdrag-service/src/main/java/no/nav/testnav/oppdragservice/service/OppdragService.java @@ -30,7 +30,7 @@ public SendInnOppdragResponse sendInnOppdrag(OppdragRequest oppdragRequest) { var request = mapperFacade.map(oppdragRequest, SendInnOppdragRequest.class); var xmlRequest = marshallToXml(request); - oppdragConsumer.sendOppdrag(xmlRequest); + var response = oppdragConsumer.sendOppdrag(request); return null; } diff --git a/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/config/TestConfig.java b/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/config/TestConfig.java new file mode 100644 index 00000000000..924f952d4e6 --- /dev/null +++ b/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/config/TestConfig.java @@ -0,0 +1,37 @@ +package no.nav.testnav.oppdragservice.config; + +import jakarta.xml.bind.JAXBException; +import ma.glasnost.orika.MapperFacade; +import no.nav.testnav.oppdragservice.consumer.OppdragConsumer; +import no.nav.testnav.oppdragservice.mapper.LocalDateCustomMapping; +import no.nav.testnav.oppdragservice.mapper.LocalDateTimeCustomMapping; +import no.nav.testnav.oppdragservice.mapper.MapperTestUtils; +import no.nav.testnav.oppdragservice.mapper.OppdragRequestMappingStrategy; +import no.nav.testnav.oppdragservice.service.OppdragService; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.List; + +@Configuration +public class TestConfig { + + @Bean + public OppdragService oppdragService() throws JAXBException { + return new OppdragService(oppdragConsumer(), mapperFacade()); + } + + @Bean + public OppdragConsumer oppdragConsumer() { + return new OppdragConsumer(); + } + + @Bean + public MapperFacade mapperFacade() { + + return MapperTestUtils.createMapperFacadeForMappingStrategy( + List.of(new LocalDateCustomMapping(), + new LocalDateTimeCustomMapping()), + new OppdragRequestMappingStrategy()); + } +} \ No newline at end of file diff --git a/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/mapper/OppdragRequestMappingStrategyTest.java b/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/mapper/OppdragRequestMappingStrategyTest.java index 7c2ead7ecbe..a4cb5be2280 100644 --- a/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/mapper/OppdragRequestMappingStrategyTest.java +++ b/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/mapper/OppdragRequestMappingStrategyTest.java @@ -1,9 +1,9 @@ package no.nav.testnav.oppdragservice.mapper; import ma.glasnost.orika.MapperFacade; -import no.nav.testnav.libs.dto.oppdragservice.v1.OppdragRequest; -import no.nav.testnav.libs.dto.oppdragservice.v1.OppdragRequest.SatsType; -import no.nav.testnav.libs.dto.oppdragservice.v1.OppdragRequest.ValuteType; +import no.nav.testnav.libs.dto.oppdragservice.v1.Oppdrag; +import no.nav.testnav.libs.dto.oppdragservice.v1.Oppdrag.ValuteType; +import no.nav.testnav.oppdragservice.utilty.Oppdragsdata; import no.nav.testnav.oppdragservice.wsdl.FradragTillegg; import no.nav.testnav.oppdragservice.wsdl.KodeArbeidsgiver; import no.nav.testnav.oppdragservice.wsdl.KodeStatus; @@ -14,13 +14,15 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.junit.jupiter.MockitoExtension; -import java.math.BigDecimal; -import java.math.BigInteger; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.List; +import static no.nav.testnav.oppdragservice.utilty.Oppdragsdata.BELOP_GRENSE; +import static no.nav.testnav.oppdragservice.utilty.Oppdragsdata.DB2_DATE_TIME_FORMAT; +import static no.nav.testnav.oppdragservice.utilty.Oppdragsdata.LONG_VALUE; +import static no.nav.testnav.oppdragservice.utilty.Oppdragsdata.NOM; +import static no.nav.testnav.oppdragservice.utilty.Oppdragsdata.TARGET_DATE_FORMAT; +import static no.nav.testnav.oppdragservice.utilty.Oppdragsdata.TARGET_NUMBER_VALUE; +import static no.nav.testnav.oppdragservice.utilty.Oppdragsdata.TEXT_VALUE; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.MatcherAssert.assertThat; @@ -31,21 +33,6 @@ @ExtendWith(MockitoExtension.class) class OppdragRequestMappingStrategyTest { - private static final LocalDate LOCAL_DATE = LocalDate.now(); - private static final LocalDateTime LOCAL_DATE_TIME = LocalDateTime.now(); - - private static final String TARGET_DATE_FORMAT = DateTimeFormatter - .ofPattern("dd-MM-yyyy").format(LOCAL_DATE); - private static final String DB2_DATE_TIME_FORMAT = DateTimeFormatter - .ofPattern("yyyy-MM-dd-HH.mm.ss.SSSSSS").format(LOCAL_DATE_TIME); - - private static final String TEXT_VALUE = "tekst"; - private static final Integer NUMBER_VALUE = 123; - private static final Long LONG_VALUE = 456L; - private static final String NOM = "Z123456"; - private static final BigDecimal BELOP_GRENSE = new java.math.BigDecimal("12332.34"); - private static final BigInteger TARGET_NUMBER_VALUE = new BigInteger(NUMBER_VALUE.toString()); - private MapperFacade mapperFacade; @BeforeEach @@ -57,9 +44,9 @@ void setup() { } @Test - void mapOppdrag_OK() { + void mapOppdragRequest_OK() { - var oppdragRequest = buildOppdragRequest(); + var oppdragRequest = Oppdragsdata.buildOppdragRequest(); var target = mapperFacade.map(oppdragRequest, SendInnOppdragRequest.class) .getRequest().getOppdrag(); @@ -75,7 +62,7 @@ void mapOppdrag_OK() { hasProperty("tidspktReg", is(equalTo(DB2_DATE_TIME_FORMAT))), hasProperty("omPostering", is(equalTo("J"))), hasProperty("saksbehId", is(equalTo(TEXT_VALUE))))); - assertThat(target.getKodeEndring(), is(equalTo(OppdragRequest.KodeEndring.NY.toString()))); + assertThat(target.getKodeEndring(), is(equalTo(Oppdrag.KodeEndring.NY.toString()))); assertThat(target.getKodeStatus(), is(equalTo(KodeStatus.ATTE))); assertThat(target.getDatoStatusFom(), is(equalTo(TARGET_DATE_FORMAT))); assertThat(target.getKodeFagomraade(), is(equalTo(TEXT_VALUE))); @@ -107,9 +94,9 @@ void mapOppdrag_OK() { } @Test - void mapOppdragsLinje_OK() { + void mapOppdragsLinjeRequest_OK() { - var oppdragRequest = buildOppdragsLinje(); + var oppdragRequest = Oppdragsdata.buildOppdragsLinjeRequest(); var target = mapperFacade.map(oppdragRequest, SendInnOppdragRequest.class) .getRequest().getOppdrag(); @@ -170,111 +157,4 @@ void mapOppdragsLinje_OK() { hasProperty("feilreg", is(equalTo(TEXT_VALUE)))))) ))); } - - private static OppdragRequest buildOppdragRequest() { - - return OppdragRequest.builder() - .oppdragsId(LONG_VALUE) - .bilagstype(List.of(OppdragRequest.Bilagstype.builder() - .typeBilag(TEXT_VALUE).build())) - .avstemmingsnokkel(List.of(OppdragRequest.Avstemmingsnokkel - .builder().kodeKomponent(TEXT_VALUE) - .avstemmingsNokkel(TEXT_VALUE) - .tidspktReg(LOCAL_DATE_TIME).build())) - .ompostering(OppdragRequest.Ompostering.builder() - .datoOmposterFom(LOCAL_DATE) - .tidspktReg(LOCAL_DATE_TIME) - .omPostering(OppdragRequest.JaNei.J) - .saksbehId(TEXT_VALUE).build()) - .kodeEndring(OppdragRequest.KodeEndring.NY) - .kodeStatus(OppdragRequest.KodeStatus.ATTE) - .datoStatusFom(LOCAL_DATE) - .kodeFagomraade(TEXT_VALUE) - .fagsystemId(TEXT_VALUE) - .oppdragsId(LONG_VALUE) - .utbetFrekvens(OppdragRequest.UtbetalingFrekvensType._14DG) - .datoForfall(LOCAL_DATE) - .stonadId(TEXT_VALUE) - .oppdragGjelderId(TEXT_VALUE) - .datoOppdragGjelderFom(LOCAL_DATE) - .saksbehId(NOM) - .enhet(List.of(OppdragRequest.Enhet.builder().typeEnhet(TEXT_VALUE) - .enhet(TEXT_VALUE).datoEnhetFom(LOCAL_DATE).build())) - .belopsgrense(List.of(OppdragRequest.Belopsgrense.builder() - .belopGrense(BELOP_GRENSE).datoGrenseFom(LOCAL_DATE) - .datoGrenseTom(LOCAL_DATE).typeGrense(TEXT_VALUE) - .feilreg(TEXT_VALUE).build())) - .tekst(List.of(OppdragRequest.Tekst.builder().tekst(TEXT_VALUE) - .tekstLnr(NUMBER_VALUE).datoTekstFom(LOCAL_DATE) - .datoTekstTom(LOCAL_DATE).tekstKode(TEXT_VALUE) - .feilreg(TEXT_VALUE).build())) - .build(); - } - - private static OppdragRequest buildOppdragsLinje() { - - return OppdragRequest.builder() - .oppdragslinje(List.of(OppdragRequest.Oppdragslinje.builder() - .kodeEndringLinje(OppdragRequest.KodeEndringType.NY) - .kodeStatusLinje(OppdragRequest.KodeStatusLinje.OPPH) - .datoStatusFom(LOCAL_DATE) - .vedtakId(TEXT_VALUE) - .delytelseId(TEXT_VALUE) - .linjeId(NUMBER_VALUE) - .kodeKlassifik(TEXT_VALUE) - .datoKlassifikFom(LOCAL_DATE) - .datoVedtakFom(LOCAL_DATE) - .datoVedtakTom(LOCAL_DATE) - .sats(BELOP_GRENSE) - .fradragTillegg(OppdragRequest.FradragTillegg.F) - .typeSats(SatsType._14DB) - .skyldnerId(TEXT_VALUE) - .datoSkyldnerFom(LOCAL_DATE) - .kravhaverId(TEXT_VALUE) - .datoKravhaverFom(LOCAL_DATE) - .kid(TEXT_VALUE) - .datoKidFom(LOCAL_DATE) - .brukKjoreplan(TEXT_VALUE) - .saksbehId(NOM) - .utbetalesTilId(TEXT_VALUE) - .datoUtbetalesTilIdFom(LOCAL_DATE) - .kodeArbeidsgiver(OppdragRequest.KodeArbeidsgiver.A) - .henvisning(TEXT_VALUE) - .typeSoknad(TEXT_VALUE) - .refFagsystemId(TEXT_VALUE) - .refOppdragsId(LONG_VALUE) - .refDelytelseId(TEXT_VALUE) - .refLinjeId(NUMBER_VALUE) - .refusjonsInfo(OppdragRequest.RefusjonsInfo.builder() - .refunderesId(TEXT_VALUE) - .maksDato(LOCAL_DATE) - .datoFom(LOCAL_DATE) - .build()) - .tekst(List.of(OppdragRequest.Tekst.builder() - .tekst(TEXT_VALUE) - .tekstLnr(NUMBER_VALUE) - .datoTekstFom(LOCAL_DATE) - .build())) - .enhet(List.of(OppdragRequest.Enhet.builder() - .typeEnhet(TEXT_VALUE) - .enhet(TEXT_VALUE) - .datoEnhetFom(LOCAL_DATE) - .build())) - .grad(List.of(OppdragRequest.Grad.builder() - .typeGrad(TEXT_VALUE) - .grad(NUMBER_VALUE) - .build())) - .attestant(List.of(OppdragRequest.Attestant.builder() - .attestantId(TEXT_VALUE) - .datoUgyldigFom(LOCAL_DATE) - .build())) - .valuta(List.of(OppdragRequest.Valuta.builder() - .typeValuta(ValuteType.FAKT) - .valuta(TEXT_VALUE) - .datoValutaFom(LOCAL_DATE) - .feilreg(TEXT_VALUE) - .build())) - .build())) - .build(); - } } \ No newline at end of file diff --git a/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/mapper/OppdragResponseMappingStrategyTest.java b/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/mapper/OppdragResponseMappingStrategyTest.java new file mode 100644 index 00000000000..6d644fc7a83 --- /dev/null +++ b/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/mapper/OppdragResponseMappingStrategyTest.java @@ -0,0 +1,156 @@ +package no.nav.testnav.oppdragservice.mapper; + +import ma.glasnost.orika.MapperFacade; +import no.nav.testnav.libs.dto.oppdragservice.v1.Oppdrag; +import no.nav.testnav.libs.dto.oppdragservice.v1.Oppdrag.JaNei; +import no.nav.testnav.libs.dto.oppdragservice.v1.OppdragResponse; +import no.nav.testnav.oppdragservice.utilty.Oppdragsdata; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; + +import java.util.List; + +import static no.nav.testnav.oppdragservice.utilty.Oppdragsdata.BELOP_GRENSE; +import static no.nav.testnav.oppdragservice.utilty.Oppdragsdata.LOCAL_DATE; +import static no.nav.testnav.oppdragservice.utilty.Oppdragsdata.LOCAL_DATE_TIME; +import static no.nav.testnav.oppdragservice.utilty.Oppdragsdata.LONG_VALUE; +import static no.nav.testnav.oppdragservice.utilty.Oppdragsdata.NOM; +import static no.nav.testnav.oppdragservice.utilty.Oppdragsdata.NUMBER_VALUE; +import static no.nav.testnav.oppdragservice.utilty.Oppdragsdata.TEXT_VALUE; +import static org.hamcrest.CoreMatchers.equalTo; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.allOf; +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.hasProperty; + +@ExtendWith(MockitoExtension.class) +class OppdragResponseMappingStrategyTest { + + private MapperFacade mapperFacade; + + @BeforeEach + void setup() { + + mapperFacade = MapperTestUtils.createMapperFacadeForMappingStrategy( + List.of(new LocalDateCustomMapping(), new LocalDateTimeCustomMapping()), + new OppdragResponseMappingStrategy()); + } + + @Test + void mapOppdragResponse_OK() { + + var oppdragResponse = Oppdragsdata.buildOppdragResponse(); + + var response = mapperFacade.map(oppdragResponse, OppdragResponse.class); + var target = response.getOppdrag(); + + assertThat(target.getOppdragsId(), is(equalTo(LONG_VALUE))); + assertThat(target.getBilagstype(), contains(hasProperty("typeBilag", is(equalTo(TEXT_VALUE))))); + assertThat(target.getAvstemmingsnokkel(), contains(allOf( + hasProperty("kodeKomponent", is(equalTo(TEXT_VALUE))), + hasProperty("avstemmingsNokkel", is(equalTo(TEXT_VALUE))), + hasProperty("tidspktReg", is(equalTo(LOCAL_DATE_TIME)))))); + assertThat(target.getOmpostering(), allOf( + hasProperty("datoOmposterFom", is(equalTo(LOCAL_DATE))), + hasProperty("tidspktReg", is(equalTo(LOCAL_DATE_TIME))), + hasProperty("omPostering", is(equalTo(JaNei.J))), + hasProperty("saksbehId", is(equalTo(TEXT_VALUE))))); + assertThat(target.getKodeEndring(), is(equalTo(Oppdrag.KodeEndring.NY))); + assertThat(target.getKodeStatus(), is(equalTo(Oppdrag.KodeStatus.ATTE))); + assertThat(target.getDatoStatusFom(), is(equalTo(LOCAL_DATE))); + assertThat(target.getKodeFagomraade(), is(equalTo(TEXT_VALUE))); + assertThat(target.getFagsystemId(), is(equalTo(TEXT_VALUE))); + assertThat(target.getOppdragsId(), is(equalTo(LONG_VALUE))); + assertThat(target.getUtbetFrekvens(), is(equalTo(Oppdrag.UtbetalingFrekvensType._14DG))); + assertThat(target.getDatoForfall(), is(equalTo(LOCAL_DATE))); + assertThat(target.getStonadId(), is(equalTo(TEXT_VALUE))); + assertThat(target.getOppdragGjelderId(), is(equalTo(TEXT_VALUE))); + assertThat(target.getDatoOppdragGjelderFom(), is(equalTo(LOCAL_DATE))); + assertThat(target.getSaksbehId(), is(equalTo(NOM))); + assertThat(target.getEnhet(), contains(allOf( + hasProperty("typeEnhet", is(equalTo(TEXT_VALUE))), + hasProperty("enhet", is(equalTo(TEXT_VALUE))), + hasProperty("datoEnhetFom", is(equalTo(LOCAL_DATE)))))); + assertThat(target.getBelopsgrense(), contains(allOf( + hasProperty("belopGrense", is(equalTo(BELOP_GRENSE))), + hasProperty("datoGrenseFom", is(equalTo(LOCAL_DATE))), + hasProperty("datoGrenseTom", is(equalTo(LOCAL_DATE))), + hasProperty("typeGrense", is(equalTo(TEXT_VALUE))), + hasProperty("feilreg", is(equalTo(TEXT_VALUE)))))); + assertThat(target.getTekst(), contains(allOf( + hasProperty("tekst", is(equalTo(TEXT_VALUE))), + hasProperty("tekstLnr", is(equalTo(NUMBER_VALUE))), + hasProperty("datoTekstFom", is(equalTo(LOCAL_DATE))), + hasProperty("datoTekstTom", is(equalTo(LOCAL_DATE))), + hasProperty("tekstKode", is(equalTo(TEXT_VALUE))), + hasProperty("feilreg", is(equalTo(TEXT_VALUE)))))); + } + + @Test + void mapOppdragsLinjeResponse_OK() { + + var oppdragResponse = Oppdragsdata.buildOppdragslinjeResponse(); + + var response = mapperFacade.map(oppdragResponse, OppdragResponse.class); + var target = response.getOppdrag(); + + assertThat(target.getOppdragslinje(), contains(allOf( + hasProperty("kodeEndringLinje", is(equalTo(Oppdrag.KodeEndringType.NY))), + hasProperty("kodeStatusLinje", is(equalTo(Oppdrag.KodeStatusLinje.OPPH))), + hasProperty("datoStatusFom", is(equalTo(LOCAL_DATE))), + hasProperty("vedtakId", is(equalTo(TEXT_VALUE))), + hasProperty("delytelseId", is(equalTo(TEXT_VALUE))), + hasProperty("linjeId", is(equalTo(NUMBER_VALUE))), + hasProperty("kodeKlassifik", is(equalTo(TEXT_VALUE))), + hasProperty("datoKlassifikFom", is(equalTo(LOCAL_DATE))), + hasProperty("datoVedtakFom", is(equalTo(LOCAL_DATE))), + hasProperty("datoVedtakTom", is(equalTo(LOCAL_DATE))), + hasProperty("sats", is(equalTo(BELOP_GRENSE))), + hasProperty("fradragTillegg", is(equalTo(Oppdrag.FradragTillegg.F))), + hasProperty("typeSats", is(equalTo(Oppdrag.SatsType._14DB))), + hasProperty("skyldnerId", is(equalTo(TEXT_VALUE))), + hasProperty("datoSkyldnerFom", is(equalTo(LOCAL_DATE))), + hasProperty("kravhaverId", is(equalTo(TEXT_VALUE))), + hasProperty("datoKravhaverFom", is(equalTo(LOCAL_DATE))), + hasProperty("kid", is(equalTo(TEXT_VALUE))), + hasProperty("datoKidFom", is(equalTo(LOCAL_DATE))), + hasProperty("brukKjoreplan", is(equalTo(TEXT_VALUE))), + hasProperty("saksbehId", is(equalTo(NOM))), + hasProperty("utbetalesTilId", is(equalTo(TEXT_VALUE))), + hasProperty("datoUtbetalesTilIdFom", is(equalTo(LOCAL_DATE))), + hasProperty("kodeArbeidsgiver", is(equalTo(Oppdrag.KodeArbeidsgiver.A))), + hasProperty("henvisning", is(equalTo(TEXT_VALUE))), + hasProperty("typeSoknad", is(equalTo(TEXT_VALUE))), + hasProperty("refFagsystemId", is(equalTo(TEXT_VALUE))), + hasProperty("refOppdragsId", is(equalTo(LONG_VALUE))), + hasProperty("refDelytelseId", is(equalTo(TEXT_VALUE))), + hasProperty("refLinjeId", is(equalTo(NUMBER_VALUE))), + hasProperty("refusjonsInfo", allOf( + hasProperty("refunderesId", is(equalTo(TEXT_VALUE))), + hasProperty("maksDato", is(equalTo(LOCAL_DATE))), + hasProperty("datoFom", is(equalTo(LOCAL_DATE))))), + hasProperty("tekst", contains(allOf( + hasProperty("tekst", is(equalTo(TEXT_VALUE))), + hasProperty("tekstLnr", is(equalTo(NUMBER_VALUE))), + hasProperty("datoTekstFom", is(equalTo(LOCAL_DATE)))))), + hasProperty("enhet", contains(allOf( + hasProperty("typeEnhet", is(equalTo(TEXT_VALUE))), + hasProperty("enhet", is(equalTo(TEXT_VALUE))), + hasProperty("datoEnhetFom", is(equalTo(LOCAL_DATE)))))), + hasProperty("grad", contains(allOf( + hasProperty("typeGrad", is(equalTo(TEXT_VALUE))), + hasProperty("grad", is(equalTo(NUMBER_VALUE)))))), + hasProperty("attestant", contains(allOf( + hasProperty("attestantId", is(equalTo(TEXT_VALUE))), + hasProperty("datoUgyldigFom", is(equalTo(LOCAL_DATE)))))), + hasProperty("valuta", contains(allOf( + hasProperty("typeValuta", is(equalTo(Oppdrag.ValuteType.FAKT))), + hasProperty("valuta", is(equalTo(TEXT_VALUE))), + hasProperty("datoValutaFom", is(equalTo(LOCAL_DATE))), + hasProperty("feilreg", is(equalTo(TEXT_VALUE)))))) + ))); + } +} \ No newline at end of file diff --git a/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/service/OppdragServiceTest.java b/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/service/OppdragServiceTest.java new file mode 100644 index 00000000000..9040b9c9dd3 --- /dev/null +++ b/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/service/OppdragServiceTest.java @@ -0,0 +1,37 @@ +package no.nav.testnav.oppdragservice.service; + +import ma.glasnost.orika.MapperFacade; +import no.nav.testnav.oppdragservice.config.TestConfig; +import no.nav.testnav.oppdragservice.consumer.OppdragConsumer; +import no.nav.testnav.oppdragservice.utilty.Oppdragsdata; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.SpringExtension; + +@ExtendWith(SpringExtension.class) +@SpringBootTest() +@ContextConfiguration(classes = TestConfig.class) +class OppdragServiceTest { + + @MockBean + private OppdragConsumer oppdragConsumer; + + @Autowired + private MapperFacade mapperFacade; + + @Autowired + private OppdragService oppdragService; + + @Test + void execService_OK() { + + var request = Oppdragsdata.buildOppdragRequest(); + var test = oppdragService.sendInnOppdrag(request); + + System.out.println(test); + } + } \ No newline at end of file diff --git a/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/utilty/Oppdragsdata.java b/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/utilty/Oppdragsdata.java new file mode 100644 index 00000000000..b68e5c21a64 --- /dev/null +++ b/apps/oppdrag-service/src/test/java/no/nav/testnav/oppdragservice/utilty/Oppdragsdata.java @@ -0,0 +1,294 @@ +package no.nav.testnav.oppdragservice.utilty; + +import lombok.experimental.UtilityClass; +import no.nav.testnav.libs.dto.oppdragservice.v1.Oppdrag; +import no.nav.testnav.libs.dto.oppdragservice.v1.OppdragRequest; +import no.nav.testnav.oppdragservice.wsdl.Bilagstype; +import no.nav.testnav.oppdragservice.wsdl.FradragTillegg; +import no.nav.testnav.oppdragservice.wsdl.KodeArbeidsgiver; +import no.nav.testnav.oppdragservice.wsdl.KodeStatus; +import no.nav.testnav.oppdragservice.wsdl.KodeStatusLinje; +import no.nav.testnav.oppdragservice.wsdl.SendInnOppdragResponse; +import no.nav.testnav.oppdragservice.wsdl.SendInnOppdragResponse2; + +import java.math.BigDecimal; +import java.math.BigInteger; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.List; + +@UtilityClass +public class Oppdragsdata { + + public static final LocalDate LOCAL_DATE = LocalDate.now(); + public static final LocalDateTime LOCAL_DATE_TIME = LocalDateTime.now(); + + public static final String TARGET_DATE_FORMAT = DateTimeFormatter + .ofPattern("dd-MM-yyyy").format(LOCAL_DATE); + public static final String DB2_DATE_TIME_FORMAT = DateTimeFormatter + .ofPattern("yyyy-MM-dd-HH.mm.ss.SSSSSS").format(LOCAL_DATE_TIME); + + public static final String TEXT_VALUE = "tekst"; + public static final Integer NUMBER_VALUE = 123; + public static final Long LONG_VALUE = 456L; + public static final String NOM = "Z123456"; + public static final BigDecimal BELOP_GRENSE = new java.math.BigDecimal("12332.34"); + public static final BigInteger TARGET_NUMBER_VALUE = new BigInteger(NUMBER_VALUE.toString()); + + public static OppdragRequest buildOppdragRequest() { + + return OppdragRequest.builder() + .oppdrag(Oppdrag.builder() + .oppdragsId(LONG_VALUE) + .bilagstype(List.of(Oppdrag.Bilagstype.builder() + .typeBilag(TEXT_VALUE).build())) + .avstemmingsnokkel(List.of(Oppdrag.Avstemmingsnokkel + .builder().kodeKomponent(TEXT_VALUE) + .avstemmingsNokkel(TEXT_VALUE) + .tidspktReg(LOCAL_DATE_TIME).build())) + .ompostering(Oppdrag.Ompostering.builder() + .datoOmposterFom(LOCAL_DATE) + .tidspktReg(LOCAL_DATE_TIME) + .omPostering(Oppdrag.JaNei.J) + .saksbehId(TEXT_VALUE).build()) + .kodeEndring(Oppdrag.KodeEndring.NY) + .kodeStatus(Oppdrag.KodeStatus.ATTE) + .datoStatusFom(LOCAL_DATE) + .kodeFagomraade(TEXT_VALUE) + .fagsystemId(TEXT_VALUE) + .oppdragsId(LONG_VALUE) + .utbetFrekvens(Oppdrag.UtbetalingFrekvensType._14DG) + .datoForfall(LOCAL_DATE) + .stonadId(TEXT_VALUE) + .oppdragGjelderId(TEXT_VALUE) + .datoOppdragGjelderFom(LOCAL_DATE) + .saksbehId(NOM) + .enhet(List.of(Oppdrag.Enhet.builder().typeEnhet(TEXT_VALUE) + .enhet(TEXT_VALUE).datoEnhetFom(LOCAL_DATE).build())) + .belopsgrense(List.of(Oppdrag.Belopsgrense.builder() + .belopGrense(BELOP_GRENSE).datoGrenseFom(LOCAL_DATE) + .datoGrenseTom(LOCAL_DATE).typeGrense(TEXT_VALUE) + .feilreg(TEXT_VALUE).build())) + .tekst(List.of(Oppdrag.Tekst.builder().tekst(TEXT_VALUE) + .tekstLnr(NUMBER_VALUE).datoTekstFom(LOCAL_DATE) + .datoTekstTom(LOCAL_DATE).tekstKode(TEXT_VALUE) + .feilreg(TEXT_VALUE).build())) + .build()) + .build(); + } + + public static OppdragRequest buildOppdragsLinjeRequest() { + + return OppdragRequest.builder() + .oppdrag(Oppdrag.builder() + .oppdragslinje(List.of(Oppdrag.Oppdragslinje.builder() + .kodeEndringLinje(Oppdrag.KodeEndringType.NY) + .kodeStatusLinje(Oppdrag.KodeStatusLinje.OPPH) + .datoStatusFom(LOCAL_DATE) + .vedtakId(TEXT_VALUE) + .delytelseId(TEXT_VALUE) + .linjeId(NUMBER_VALUE) + .kodeKlassifik(TEXT_VALUE) + .datoKlassifikFom(LOCAL_DATE) + .datoVedtakFom(LOCAL_DATE) + .datoVedtakTom(LOCAL_DATE) + .sats(BELOP_GRENSE) + .fradragTillegg(Oppdrag.FradragTillegg.F) + .typeSats(Oppdrag.SatsType._14DB) + .skyldnerId(TEXT_VALUE) + .datoSkyldnerFom(LOCAL_DATE) + .kravhaverId(TEXT_VALUE) + .datoKravhaverFom(LOCAL_DATE) + .kid(TEXT_VALUE) + .datoKidFom(LOCAL_DATE) + .brukKjoreplan(TEXT_VALUE) + .saksbehId(NOM) + .utbetalesTilId(TEXT_VALUE) + .datoUtbetalesTilIdFom(LOCAL_DATE) + .kodeArbeidsgiver(Oppdrag.KodeArbeidsgiver.A) + .henvisning(TEXT_VALUE) + .typeSoknad(TEXT_VALUE) + .refFagsystemId(TEXT_VALUE) + .refOppdragsId(LONG_VALUE) + .refDelytelseId(TEXT_VALUE) + .refLinjeId(NUMBER_VALUE) + .refusjonsInfo(Oppdrag.RefusjonsInfo.builder() + .refunderesId(TEXT_VALUE) + .maksDato(LOCAL_DATE) + .datoFom(LOCAL_DATE) + .build()) + .tekst(List.of(Oppdrag.Tekst.builder() + .tekst(TEXT_VALUE) + .tekstLnr(NUMBER_VALUE) + .datoTekstFom(LOCAL_DATE) + .build())) + .enhet(List.of(Oppdrag.Enhet.builder() + .typeEnhet(TEXT_VALUE) + .enhet(TEXT_VALUE) + .datoEnhetFom(LOCAL_DATE) + .build())) + .grad(List.of(Oppdrag.Grad.builder() + .typeGrad(TEXT_VALUE) + .grad(NUMBER_VALUE) + .build())) + .attestant(List.of(Oppdrag.Attestant.builder() + .attestantId(TEXT_VALUE) + .datoUgyldigFom(LOCAL_DATE) + .build())) + .valuta(List.of(Oppdrag.Valuta.builder() + .typeValuta(Oppdrag.ValuteType.FAKT) + .valuta(TEXT_VALUE) + .datoValutaFom(LOCAL_DATE) + .feilreg(TEXT_VALUE) + .build())) + .build())) + .build()) + .build(); + } + + public static SendInnOppdragResponse buildOppdragResponse() { + + var response = new SendInnOppdragResponse(); + response.setResponse(new SendInnOppdragResponse2()); + + var oppdrag = new no.nav.testnav.oppdragservice.wsdl.Oppdrag(); + oppdrag.setOppdragsId(LONG_VALUE); + response.getResponse().setOppdrag(oppdrag); + + var bilagstype = new Bilagstype(); + bilagstype.setTypeBilag(TEXT_VALUE); + oppdrag.getBilagstype().add(bilagstype); + + var avstemmingsnokkel = new no.nav.testnav.oppdragservice.wsdl.Avstemmingsnokkel(); + avstemmingsnokkel.setKodeKomponent(TEXT_VALUE); + avstemmingsnokkel.setAvstemmingsNokkel(TEXT_VALUE); + avstemmingsnokkel.setTidspktReg(DB2_DATE_TIME_FORMAT); + oppdrag.getAvstemmingsnokkel().add(avstemmingsnokkel); + + var ompostering = new no.nav.testnav.oppdragservice.wsdl.Ompostering(); + ompostering.setDatoOmposterFom(TARGET_DATE_FORMAT); + ompostering.setTidspktReg(DB2_DATE_TIME_FORMAT); + ompostering.setOmPostering(Oppdrag.JaNei.J.toString()); + ompostering.setSaksbehId(TEXT_VALUE); + oppdrag.setOmpostering(ompostering); + + oppdrag.setKodeEndring(Oppdrag.KodeEndring.NY.toString()); + oppdrag.setKodeStatus(KodeStatus.ATTE); + oppdrag.setDatoStatusFom(TARGET_DATE_FORMAT); + oppdrag.setKodeFagomraade(TEXT_VALUE); + oppdrag.setFagsystemId(TEXT_VALUE); + oppdrag.setOppdragsId(LONG_VALUE); + oppdrag.setUtbetFrekvens("14DG"); + oppdrag.setDatoForfall(TARGET_DATE_FORMAT); + oppdrag.setStonadId(TEXT_VALUE); + oppdrag.setOppdragGjelderId(TEXT_VALUE); + oppdrag.setDatoOppdragGjelderFom(TARGET_DATE_FORMAT); + oppdrag.setSaksbehId(NOM); + + var enhet = new no.nav.testnav.oppdragservice.wsdl.Enhet(); + enhet.setTypeEnhet(TEXT_VALUE); + enhet.setEnhet(TEXT_VALUE); + enhet.setDatoEnhetFom(TARGET_DATE_FORMAT); + oppdrag.getEnhet().add(enhet); + + var belopsgrense = new no.nav.testnav.oppdragservice.wsdl.Belopsgrense(); + belopsgrense.setBelopGrense(BELOP_GRENSE); + belopsgrense.setDatoGrenseFom(TARGET_DATE_FORMAT); + belopsgrense.setDatoGrenseTom(TARGET_DATE_FORMAT); + belopsgrense.setTypeGrense(TEXT_VALUE); + belopsgrense.setFeilreg(TEXT_VALUE); + oppdrag.getBelopsgrense().add(belopsgrense); + + var tekst = new no.nav.testnav.oppdragservice.wsdl.Tekst(); + tekst.setTekst(TEXT_VALUE); + tekst.setTekstLnr(TARGET_NUMBER_VALUE); + tekst.setDatoTekstFom(TARGET_DATE_FORMAT); + tekst.setDatoTekstTom(TARGET_DATE_FORMAT); + tekst.setTekstKode(TEXT_VALUE); + tekst.setFeilreg(TEXT_VALUE); + oppdrag.getTekst().add(tekst); + + return response; + } + + public static SendInnOppdragResponse buildOppdragslinjeResponse() { + + var response = new SendInnOppdragResponse(); + response.setResponse(new SendInnOppdragResponse2()); + + var oppdrag = new no.nav.testnav.oppdragservice.wsdl.Oppdrag(); + response.getResponse().setOppdrag(oppdrag); + + var oppdragslinje = new no.nav.testnav.oppdragservice.wsdl.Oppdragslinje(); + oppdrag.getOppdragslinje().add(oppdragslinje); + + oppdragslinje.setKodeEndringLinje(Oppdrag.KodeEndringType.NY.toString()); + oppdragslinje.setKodeStatusLinje(KodeStatusLinje.OPPH); + oppdragslinje.setDatoStatusFom(TARGET_DATE_FORMAT); + oppdragslinje.setVedtakId(TEXT_VALUE); + oppdragslinje.setDelytelseId(TEXT_VALUE); + oppdragslinje.setLinjeId(TARGET_NUMBER_VALUE); + oppdragslinje.setKodeKlassifik(TEXT_VALUE); + oppdragslinje.setDatoKlassifikFom(TARGET_DATE_FORMAT); + oppdragslinje.setDatoVedtakFom(TARGET_DATE_FORMAT); + oppdragslinje.setDatoVedtakTom(TARGET_DATE_FORMAT); + oppdragslinje.setSats(BELOP_GRENSE); + oppdragslinje.setFradragTillegg(FradragTillegg.F); + oppdragslinje.setTypeSats("14DB"); + oppdragslinje.setSkyldnerId(TEXT_VALUE); + oppdragslinje.setDatoSkyldnerFom(TARGET_DATE_FORMAT); + oppdragslinje.setKravhaverId(TEXT_VALUE); + oppdragslinje.setDatoKravhaverFom(TARGET_DATE_FORMAT); + oppdragslinje.setKid(TEXT_VALUE); + oppdragslinje.setDatoKidFom(TARGET_DATE_FORMAT); + oppdragslinje.setBrukKjoreplan(TEXT_VALUE); + oppdragslinje.setSaksbehId(NOM); + oppdragslinje.setUtbetalesTilId(TEXT_VALUE); + oppdragslinje.setDatoUtbetalesTilIdFom(TARGET_DATE_FORMAT); + oppdragslinje.setKodeArbeidsgiver(KodeArbeidsgiver.A); + oppdragslinje.setHenvisning(TEXT_VALUE); + oppdragslinje.setTypeSoknad(TEXT_VALUE); + oppdragslinje.setRefFagsystemId(TEXT_VALUE); + oppdragslinje.setRefOppdragsId(LONG_VALUE); + oppdragslinje.setRefDelytelseId(TEXT_VALUE); + oppdragslinje.setRefLinjeId(TARGET_NUMBER_VALUE); + + var refusjonsInfo = new no.nav.testnav.oppdragservice.wsdl.RefusjonsInfo(); + refusjonsInfo.setRefunderesId(TEXT_VALUE); + refusjonsInfo.setMaksDato(TARGET_DATE_FORMAT); + refusjonsInfo.setDatoFom(TARGET_DATE_FORMAT); + oppdragslinje.setRefusjonsInfo(refusjonsInfo); + + var tekst = new no.nav.testnav.oppdragservice.wsdl.Tekst(); + tekst.setTekst(TEXT_VALUE); + tekst.setTekstLnr(TARGET_NUMBER_VALUE); + tekst.setDatoTekstFom(TARGET_DATE_FORMAT); + oppdragslinje.getTekst().add(tekst); + + var enhet = new no.nav.testnav.oppdragservice.wsdl.Enhet(); + enhet.setTypeEnhet(TEXT_VALUE); + enhet.setEnhet(TEXT_VALUE); + enhet.setDatoEnhetFom(TARGET_DATE_FORMAT); + oppdragslinje.getEnhet().add(enhet); + + var grad = new no.nav.testnav.oppdragservice.wsdl.Grad(); + grad.setTypeGrad(TEXT_VALUE); + grad.setGrad(TARGET_NUMBER_VALUE); + oppdragslinje.getGrad().add(grad); + + var attestant = new no.nav.testnav.oppdragservice.wsdl.Attestant(); + attestant.setAttestantId(TEXT_VALUE); + attestant.setDatoUgyldigFom(TARGET_DATE_FORMAT); + oppdragslinje.getAttestant().add(attestant); + + var valuta = new no.nav.testnav.oppdragservice.wsdl.Valuta(); + valuta.setTypeValuta(Oppdrag.ValuteType.FAKT.toString()); + valuta.setValuta(TEXT_VALUE); + valuta.setDatoValutaFom(TARGET_DATE_FORMAT); + valuta.setFeilreg(TEXT_VALUE); + oppdragslinje.getValuta().add(valuta); + + return response; + } +} diff --git a/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/Oppdrag.java b/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/Oppdrag.java new file mode 100644 index 00000000000..1954544ee2b --- /dev/null +++ b/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/Oppdrag.java @@ -0,0 +1,460 @@ +package no.nav.testnav.libs.dto.oppdragservice.v1; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.Size; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.math.BigDecimal; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.List; + +import static java.util.Objects.isNull; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class Oppdrag { + + private List bilagstype; + private List avstemmingsnokkel; + private Ompostering ompostering; + private List oppdragslinje; + + @NotBlank + private KodeEndring kodeEndring; + private KodeStatus kodeStatus; + private LocalDate datoStatusFom; + @NotBlank + @Schema(minLength = 1, maxLength = 8) + private String kodeFagomraade; + @Schema(maxLength = 30) + private String fagsystemId; + @Schema(maxLength = 10) + private Long oppdragsId; + private UtbetalingFrekvensType utbetFrekvens; + private LocalDate datoForfall; + @Schema(maxLength = 10) + private String stonadId; + @NotBlank + @Schema(description = "Angir fødselsnummer eller organisasjonsnummer oppdraget gjelder for", minLength = 9, maxLength = 11) + private String oppdragGjelderId; + @NotBlank + private LocalDate datoOppdragGjelderFom; + @NotBlank + @Schema(maxLength = 8) + private String saksbehId; + + private List enhet; + private List belopsgrense; + private List tekst; + + public List getBilagstype() { + + if (isNull(bilagstype)) { + bilagstype = new ArrayList<>(); + } + return bilagstype; + } + + public List getAvstemmingsnokkel() { + + if (isNull(avstemmingsnokkel)) { + avstemmingsnokkel = new ArrayList<>(); + } + return avstemmingsnokkel; + } + + public List getOppdragslinje() { + + if (isNull(oppdragslinje)) { + oppdragslinje = new ArrayList<>(); + } + return oppdragslinje; + } + + public List getEnhet() { + + if (isNull(enhet)) { + enhet = new ArrayList<>(); + } + return enhet; + } + + public List getBelopsgrense() { + + if (isNull(belopsgrense)) { + belopsgrense = new ArrayList<>(); + } + return belopsgrense; + } + + public List getTekst() { + + if (isNull(tekst)) { + tekst = new ArrayList<>(); + } + return tekst; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Schema(description = "Bilagstype, Referanse ID 113") + public static class Bilagstype { + + @Schema(description = "Kode for type av bilag", minLength = 1, maxLength = 2) + private String typeBilag; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Schema(description = "Entitet nøkler til bevis informasjon, Referanse ID 115") + public static class Avstemmingsnokkel { + + @NotBlank + @Schema(minLength = 1, maxLength = 8) + private String kodeKomponent; + @NotBlank + @Schema(minLength = 1, maxLength = 8) + private String avstemmingsNokkel; + @NotBlank + private LocalDateTime tidspktReg; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Schema(description = "Ompostering, Referanse ID 116") + public static class Ompostering { + + @NotBlank + private JaNei omPostering; + private LocalDate datoOmposterFom; + @Schema(description = "Kode for beskrivelse av feil", minLength = 0, maxLength = 1) + private String feilreg; + @NotBlank + private LocalDateTime tidspktReg; + @NotBlank + @Schema(maxLength = 8) + private String saksbehId; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Schema(description = "Oppdragslinje, Referanse ID 115") + public static class Oppdragslinje { + + @NotBlank + private KodeEndringType kodeEndringLinje; + private KodeStatusLinje kodeStatusLinje; + private LocalDate datoStatusFom; + @Schema(maxLength = 10) + private String vedtakId; + @Schema(maxLength = 30) + private String delytelseId; + @Schema(maxLength = 5) + private Integer linjeId; + @NotBlank + @Schema(minLength = 1, maxLength = 50) + private String kodeKlassifik; + private LocalDate datoKlassifikFom; + @NotBlank + private LocalDate datoVedtakFom; + private LocalDate datoVedtakTom; + @NotBlank + @Schema(description = "maximal toal lengde = 13, antall desimaler = 2") + private BigDecimal sats; + @NotBlank + private FradragTillegg fradragTillegg; + @NotBlank + private SatsType typeSats; + @Schema(description = "Angir fødselsnummer eller organisasjonsnummer på skyldneren", minLength = 9, maxLength = 11) + private String skyldnerId; + private LocalDate datoSkyldnerFom; + @Schema(description = "Angir fødselsnummer eller organisasjonsnummer på kravhaver", minLength = 9, maxLength = 11) + private String kravhaverId; + private LocalDate datoKravhaverFom; + @Schema(maxLength = 26) + private String kid; + private LocalDate datoKidFom; + @Schema(maxLength = 1) + private String brukKjoreplan; + @NotBlank + @Schema(maxLength = 8) + private String saksbehId; + @NotBlank + @Schema(description = "Angir fødselsnummer eller organisasjonsnummer på kravhaver", minLength = 9, maxLength = 11) + private String utbetalesTilId; + private LocalDate datoUtbetalesTilIdFom; + @NotBlank + private KodeArbeidsgiver kodeArbeidsgiver; + @Schema(maxLength = 30) + private String henvisning; + @Schema(maxLength = 10) + private String typeSoknad; + @Schema(maxLength = 30) + private String refFagsystemId; + @Schema(maxLength = 10) + private Long refOppdragsId; + @Schema(maxLength = 30) + private String refDelytelseId; + @Schema(maxLength = 5) + private Integer refLinjeId; + + private RefusjonsInfo refusjonsInfo; + private List tekst; + + private List enhet; + private List grad; + private List attestant; + private List valuta; + + public List getTekst() { + + if (isNull(tekst)) { + tekst = new ArrayList<>(); + } + return tekst; + } + + public List getEnhet() { + + if (isNull(enhet)) { + enhet = new ArrayList<>(); + } + return enhet; + } + + public List getGrad() { + + if (isNull(grad)) { + grad = new ArrayList<>(); + } + return grad; + } + + public List getAttestant() { + + if (isNull(attestant)) { + attestant = new ArrayList<>(); + } + return attestant; + } + + public List getValuta() { + + if (isNull(valuta)) { + valuta = new ArrayList<>(); + } + return valuta; + } + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Schema(description = "Entitet for refusjon til et orgnr og/eller maksdato for utbetaling av ytelse, Referanse ID 156") + public static class RefusjonsInfo { + + @Schema(description = "Angir fødselsnummer eller organisasjonsnummer på kravhaver", minLength = 9, maxLength = 11) + private String refunderesId; + private LocalDate maksDato; + private LocalDate datoFom; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Schema(description = "Entitet Tekst, Referanse ID 140 dersom tekst er tilhørende oppdrag, " + + "Referanse ID 158 dersom tekst er tilhørende oppdragslinje") + public static class Tekst { + + @NotBlank + @Schema(minLength = 1, maxLength = 2) + private Integer tekstLnr; + @Schema(maxLength = 4) + private String tekstKode; + @Schema + private String tekst; + @NotBlank + private LocalDate datoTekstFom; + private LocalDate datoTekstTom; + @Schema(description = "Kode for beskrivelse av feil", minLength = 0, maxLength = 1) + private String feilreg; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Schema(description = "Entitet enhet, Referanse ID 120 dersom enhet er på nivå oppdrag, " + + "Referanse ID 160 dersom enhet er på nivå oppdragslinje") + public static class Enhet { + + @NotBlank + @Size(min = 1, max = 4) + private String typeEnhet; + @Size(min = 4, max = 13) + @Schema(description = "Enhet er tknr evt orgnr + avdeling") + private String enhet; + @NotBlank + private LocalDate datoEnhetFom; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Schema(description = "Entitet Grad, Referanse ID 170") + public static class Grad { + + @NotBlank + @Schema(minLength = 1, maxLength = 4) + protected String typeGrad; + @NotBlank + @Schema(description = "Prosentgrad, maks 100") + protected Integer grad; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Schema(description = "Entitet Attestasjon, Referanse ID 180") + public static class Attestant { + + @NotBlank + @Schema(minLength = 1, maxLength = 8) + protected String attestantId; + protected LocalDate datoUgyldigFom; + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Schema(description = "Entitet Valuta, Referanse ID 190") + public static class Valuta { + + @NotBlank + protected ValuteType typeValuta; + @NotBlank + @Schema(minLength = 1, maxLength = 3) + protected String valuta; + @NotBlank + protected LocalDate datoValutaFom; + @Schema(description = "Kode for beskrivelse av feil", minLength = 0, maxLength = 1) + protected String feilreg; + } + + public enum JaNei { + J, + N + } + + public enum KodeStatusLinje { + OPPH, + HVIL, + SPER, + REAK + } + + public enum FradragTillegg { + F, + T + } + + public enum KodeArbeidsgiver { + A, + S, + P + } + + public enum KodeStatus { + NY, + LOPE, + HVIL, + SPER, + IKAT, + ATTE, + ANNU, + OPPH, + FBER, + REAK, + KORR, + FEIL + } + + public enum KodeEndring { + NY, + ENDR, + UEND + } + + public enum KodeEndringType { + NY, + ENDR + } + + public enum SatsType { + + DAG, + UKE, + _14DB, + MND, + AAR, + ENG, + AKTO + } + + public enum UtbetalingFrekvensType { + + DAG, + UKE, + MND, + _14DG, + ENG + } + + public enum ValuteType { + + FAKT, + FRAM, + UTB + } + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + @Schema(description = "Entitet Beløpsgrense, Referanse ID 130") + public static class Belopsgrense { + + @NotBlank + @Schema(minLength = 1, maxLength = 4) + private String typeGrense; + @NotBlank + @Schema(description = "Typen beskriver formatet og begrensningene til beløp, maks totalt antall sifre=11, desimaler=2") + private BigDecimal belopGrense; + @NotBlank + private LocalDate datoGrenseFom; + private LocalDate datoGrenseTom; + @Schema(description = "Kode for beskrivelse av feil", minLength = 0, maxLength = 1) + private String feilreg; + } +} diff --git a/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/OppdragRequest.java b/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/OppdragRequest.java index 4fef56f644e..228ff35b00e 100644 --- a/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/OppdragRequest.java +++ b/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/OppdragRequest.java @@ -1,21 +1,11 @@ package no.nav.testnav.libs.dto.oppdragservice.v1; import io.swagger.v3.oas.annotations.media.Schema; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.Size; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.math.BigDecimal; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.util.ArrayList; -import java.util.List; - -import static java.util.Objects.isNull; - @Data @Builder @NoArgsConstructor @@ -23,439 +13,5 @@ @Schema(description = "Entitet Oppdrag, Referanse ID 110") public class OppdragRequest { - private List bilagstype; - private List avstemmingsnokkel; - private Ompostering ompostering; - private List oppdragslinje; - - @NotBlank - private KodeEndring kodeEndring; - private KodeStatus kodeStatus; - private LocalDate datoStatusFom; - @NotBlank - @Schema(minLength = 1, maxLength = 8) - private String kodeFagomraade; - @Schema(maxLength = 30) - private String fagsystemId; - @Schema(maxLength = 10) - private Long oppdragsId; - private UtbetalingFrekvensType utbetFrekvens; - private LocalDate datoForfall; - @Schema(maxLength = 10) - private String stonadId; - @NotBlank - @Schema(description = "Angir fødselsnummer eller organisasjonsnummer oppdraget gjelder for", minLength = 9, maxLength = 11) - private String oppdragGjelderId; - @NotBlank - private LocalDate datoOppdragGjelderFom; - @NotBlank - @Schema(maxLength = 8) - private String saksbehId; - - private List enhet; - private List belopsgrense; - private List tekst; - - public List getBilagstype() { - - if (isNull(bilagstype)) { - bilagstype = new ArrayList<>(); - } - return bilagstype; - } - - public List getAvstemmingsnokkel() { - - if (isNull(avstemmingsnokkel)) { - avstemmingsnokkel = new ArrayList<>(); - } - return avstemmingsnokkel; - } - - public List getOppdragslinje() { - - if (isNull(oppdragslinje)) { - oppdragslinje = new ArrayList<>(); - } - return oppdragslinje; - } - - public List getEnhet() { - - if (isNull(enhet)) { - enhet = new ArrayList<>(); - } - return enhet; - } - - public List getBelopsgrense() { - - if (isNull(belopsgrense)) { - belopsgrense = new ArrayList<>(); - } - return belopsgrense; - } - - public List getTekst() { - - if (isNull(tekst)) { - tekst = new ArrayList<>(); - } - return tekst; - } - - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - @Schema(description = "Bilagstype, Referanse ID 113") - public static class Bilagstype { - - @Schema(description = "Kode for type av bilag", minLength = 1, maxLength = 2) - private String typeBilag; - } - - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - @Schema(description = "Entitet nøkler til bevis informasjon, Referanse ID 115") - public static class Avstemmingsnokkel { - - @NotBlank - @Schema(minLength = 1, maxLength = 8) - private String kodeKomponent; - @NotBlank - @Schema(minLength = 1, maxLength = 8) - private String avstemmingsNokkel; - @NotBlank - private LocalDateTime tidspktReg; - } - - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - @Schema(description = "Ompostering, Referanse ID 116") - public static class Ompostering { - - @NotBlank - private JaNei omPostering; - private LocalDate datoOmposterFom; - @Schema(description = "Kode for beskrivelse av feil", minLength = 0, maxLength = 1) - private String feilreg; - @NotBlank - private LocalDateTime tidspktReg; - @NotBlank - @Schema(maxLength = 8) - private String saksbehId; - } - - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - @Schema(description = "Oppdragslinje, Referanse ID 115") - public static class Oppdragslinje { - - @NotBlank - private KodeEndringType kodeEndringLinje; - private KodeStatusLinje kodeStatusLinje; - private LocalDate datoStatusFom; - @Schema(maxLength = 10) - private String vedtakId; - @Schema(maxLength = 30) - private String delytelseId; - @Schema(maxLength = 5) - private Integer linjeId; - @NotBlank - @Schema(minLength = 1, maxLength = 50) - private String kodeKlassifik; - private LocalDate datoKlassifikFom; - @NotBlank - private LocalDate datoVedtakFom; - private LocalDate datoVedtakTom; - @NotBlank - @Schema(description = "maximal toal lengde = 13, antall desimaler = 2") - private BigDecimal sats; - @NotBlank - private FradragTillegg fradragTillegg; - @NotBlank - private SatsType typeSats; - @Schema(description = "Angir fødselsnummer eller organisasjonsnummer på skyldneren", minLength = 9, maxLength = 11) - private String skyldnerId; - private LocalDate datoSkyldnerFom; - @Schema(description = "Angir fødselsnummer eller organisasjonsnummer på kravhaver", minLength = 9, maxLength = 11) - private String kravhaverId; - private LocalDate datoKravhaverFom; - @Schema(maxLength = 26) - private String kid; - private LocalDate datoKidFom; - @Schema(maxLength = 1) - private String brukKjoreplan; - @NotBlank - @Schema(maxLength = 8) - private String saksbehId; - @NotBlank - @Schema(description = "Angir fødselsnummer eller organisasjonsnummer på kravhaver", minLength = 9, maxLength = 11) - private String utbetalesTilId; - private LocalDate datoUtbetalesTilIdFom; - @NotBlank - private KodeArbeidsgiver kodeArbeidsgiver; - @Schema(maxLength = 30) - private String henvisning; - @Schema(maxLength = 10) - private String typeSoknad; - @Schema(maxLength = 30) - private String refFagsystemId; - @Schema(maxLength = 10) - private Long refOppdragsId; - @Schema(maxLength = 30) - private String refDelytelseId; - @Schema(maxLength = 5) - private Integer refLinjeId; - - private RefusjonsInfo refusjonsInfo; - private List tekst; - - private List enhet; - private List grad; - private List attestant; - private List valuta; - - public List getTekst() { - - if (isNull(tekst)) { - tekst = new ArrayList<>(); - } - return tekst; - } - - public List getEnhet() { - - if (isNull(enhet)) { - enhet = new ArrayList<>(); - } - return enhet; - } - - public List getGrad() { - - if (isNull(grad)) { - grad = new ArrayList<>(); - } - return grad; - } - - public List getAttestant() { - - if (isNull(attestant)) { - attestant = new ArrayList<>(); - } - return attestant; - } - - public List getValuta() { - - if (isNull(valuta)) { - valuta = new ArrayList<>(); - } - return valuta; - } - } - - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - @Schema(description = "Entitet for refusjon til et orgnr og/eller maksdato for utbetaling av ytelse, Referanse ID 156") - public static class RefusjonsInfo { - - @Schema(description = "Angir fødselsnummer eller organisasjonsnummer på kravhaver", minLength = 9, maxLength = 11) - private String refunderesId; - private LocalDate maksDato; - private LocalDate datoFom; - } - - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - @Schema(description = "Entitet Tekst, Referanse ID 140 dersom tekst er tilhørende oppdrag, " + - "Referanse ID 158 dersom tekst er tilhørende oppdragslinje") - public static class Tekst { - - @NotBlank - @Schema(minLength = 1, maxLength = 2) - private Integer tekstLnr; - @Schema(maxLength = 4) - private String tekstKode; - @Schema - private String tekst; - @NotBlank - private LocalDate datoTekstFom; - private LocalDate datoTekstTom; - @Schema(description = "Kode for beskrivelse av feil", minLength = 0, maxLength = 1) - private String feilreg; - } - - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - @Schema(description = "Entitet enhet, Referanse ID 120 dersom enhet er på nivå oppdrag, " + - "Referanse ID 160 dersom enhet er på nivå oppdragslinje") - public static class Enhet { - - @NotBlank - @Size(min = 1, max = 4) - private String typeEnhet; - @Size(min = 4, max = 13) - @Schema(description = "Enhet er tknr evt orgnr + avdeling") - private String enhet; - @NotBlank - private LocalDate datoEnhetFom; - } - - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - @Schema(description = "Entitet Grad, Referanse ID 170") - public static class Grad { - - @NotBlank - @Schema(minLength = 1, maxLength = 4) - protected String typeGrad; - @NotBlank - @Schema(description = "Prosentgrad, maks 100") - protected Integer grad; - } - - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - @Schema(description = "Entitet Attestasjon, Referanse ID 180") - public static class Attestant { - - @NotBlank - @Schema(minLength = 1, maxLength = 8) - protected String attestantId; - protected LocalDate datoUgyldigFom; - } - - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - @Schema(description = "Entitet Valuta, Referanse ID 190") - public static class Valuta { - - @NotBlank - protected ValuteType typeValuta; - @NotBlank - @Schema(minLength = 1, maxLength = 3) - protected String valuta; - @NotBlank - protected LocalDate datoValutaFom; - @Schema(description = "Kode for beskrivelse av feil", minLength = 0, maxLength = 1) - protected String feilreg; - } - - public enum JaNei { - J, - N - } - - public enum KodeStatusLinje { - OPPH, - HVIL, - SPER, - REAK - } - - public enum FradragTillegg { - F, - T - } - - public enum KodeArbeidsgiver { - A, - S, - P - } - - public enum KodeStatus { - NY, - LOPE, - HVIL, - SPER, - IKAT, - ATTE, - ANNU, - OPPH, - FBER, - REAK, - KORR, - FEIL - } - - public enum KodeEndring { - NY, - ENDR, - UEND - } - - public enum KodeEndringType { - NY, - ENDR - } - - public enum SatsType { - - DAG, - UKE, - _14DB, - MND, - AAR, - ENG, - AKTO - } - - public enum UtbetalingFrekvensType { - - DAG, - UKE, - MND, - _14DG, - ENG - } - - public enum ValuteType { - - FAKT, - FRAM, - UTB - } - - @Data - @Builder - @NoArgsConstructor - @AllArgsConstructor - @Schema(description = "Entitet Beløpsgrense, Referanse ID 130") - public static class Belopsgrense { - - @NotBlank - @Schema(minLength = 1, maxLength = 4) - private String typeGrense; - @NotBlank - @Schema(description = "Typen beskriver formatet og begrensningene til beløp, maks totalt antall sifre=11, desimaler=2") - private BigDecimal belopGrense; - @NotBlank - private LocalDate datoGrenseFom; - private LocalDate datoGrenseTom; - @Schema(description = "Kode for beskrivelse av feil", minLength = 0, maxLength = 1) - private String feilreg; - } + private Oppdrag oppdrag; } diff --git a/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/OppdragResponse.java b/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/OppdragResponse.java new file mode 100644 index 00000000000..f0cde26ef67 --- /dev/null +++ b/libs/data-transfer-objects/src/main/java/no/nav/testnav/libs/dto/oppdragservice/v1/OppdragResponse.java @@ -0,0 +1,25 @@ +package no.nav.testnav.libs.dto.oppdragservice.v1; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class OppdragResponse { + + private Oppdrag oppdrag; + private Infomelding infomelding; + + @Data + @Builder + @NoArgsConstructor + @AllArgsConstructor + public static class Infomelding { + + private String beskrMelding; + } +}