diff --git a/CHANGELOG.md b/CHANGELOG.md index 7ab358622..05ea9260b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,10 @@ # Changelog All notable changes to this project will be documented in this file. +## [10.4.0] +### Changed +- Upgrade `customer-profile-api` version from `1.17.1` to `2.6.0`. + ## [10.3.0] ### Changed - Upgrade `investment-service-api` version from `1.4.1` to `1.6.0`; regenerate API clients and fix all compilation errors in production and test sources. diff --git a/stream-customer-profile/customer-profile-core/src/main/java/com/backbase/stream/mapper/PartyMapper.java b/stream-customer-profile/customer-profile-core/src/main/java/com/backbase/stream/mapper/PartyMapper.java index ed43eaea8..0c1ce6412 100644 --- a/stream-customer-profile/customer-profile-core/src/main/java/com/backbase/stream/mapper/PartyMapper.java +++ b/stream-customer-profile/customer-profile-core/src/main/java/com/backbase/stream/mapper/PartyMapper.java @@ -1,10 +1,13 @@ package com.backbase.stream.mapper; import com.backbase.customerprofile.api.integration.v1.model.PartyUpsertDto; +import com.backbase.customerprofile.api.integration.v1.model.PostalAddressDto; import com.backbase.stream.legalentity.model.Party; +import com.backbase.stream.legalentity.model.PartyPostalAddress; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.MappingConstants; +import org.mapstruct.ValueMapping; @Mapper(componentModel = MappingConstants.ComponentModel.SPRING) public interface PartyMapper { @@ -12,4 +15,14 @@ public interface PartyMapper { @Mapping(target = "additions", source = "customFields") PartyUpsertDto partyToPartyUpsertDto(Party party); + @ValueMapping(source = "BUSINESS", target = "BUSINESS") + @ValueMapping(source = "CORRESPONDENCE", target = "CORRESPONDENCE") + @ValueMapping(source = "DELIVERY_TO", target = "DELIVERYTO") + @ValueMapping(source = "MAIL_TO", target = "MAILTO") + @ValueMapping(source = "PO_BOX", target = "PO_BOX") + @ValueMapping(source = "POSTAL", target = "POSTAL") + @ValueMapping(source = "RESIDENTIAL", target = "RESIDENTIAL") + @ValueMapping(source = "STATEMENT", target = "STATEMENT") + PostalAddressDto.TypeEnum mapPostalAddressType(PartyPostalAddress.TypeEnum partyPostalAddress); + } \ No newline at end of file diff --git a/stream-customer-profile/customer-profile-core/src/test/java/com/backbase/stream/mapper/MapperTest.java b/stream-customer-profile/customer-profile-core/src/test/java/com/backbase/stream/mapper/MapperTest.java index bd0845d80..df22aeadb 100644 --- a/stream-customer-profile/customer-profile-core/src/test/java/com/backbase/stream/mapper/MapperTest.java +++ b/stream-customer-profile/customer-profile-core/src/test/java/com/backbase/stream/mapper/MapperTest.java @@ -7,12 +7,18 @@ import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; +import com.backbase.customerprofile.api.integration.v1.model.PostalAddressDto; import com.backbase.stream.legalentity.model.Party; +import com.backbase.stream.legalentity.model.PartyPostalAddress; import com.navercorp.fixturemonkey.FixtureMonkey; import java.util.ArrayList; import java.util.HashMap; +import java.util.stream.Stream; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.Arguments; +import org.junit.jupiter.params.provider.MethodSource; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; @@ -118,6 +124,7 @@ void shouldMapPopulatedCollections() { var party = fixtureMonkey.giveMeBuilder(Party.class) .size("phoneNumbers", 2) .size("postalAddresses", 1) + .set("postalAddresses[0].type", PartyPostalAddress.TypeEnum.BUSINESS) .size("customFields", 3) .size("partyPartyRelationships", 1) .sample(); @@ -129,6 +136,7 @@ void shouldMapPopulatedCollections() { assertNotNull(resultDto.getPostalAddresses()); assertEquals(1, resultDto.getPostalAddresses().size()); + assertEquals(PostalAddressDto.TypeEnum.BUSINESS, resultDto.getPostalAddresses().getFirst().getType()); assertNotNull(resultDto.getAdditions()); assertEquals(3, resultDto.getAdditions().size()); @@ -199,4 +207,24 @@ void shouldMapNullCollections() { assertTrue(resultDto.getElectronicAddresses().getUrls().isEmpty()); } + @ParameterizedTest + @DisplayName("Should map address type correctly") + @MethodSource("addressTypes") + void shouldMapAddressType(PostalAddressDto.TypeEnum expectedType, PartyPostalAddress.TypeEnum actualType) { + var mapped = partyMapper.mapPostalAddressType(actualType); + assertEquals(expectedType, mapped); + } + + private static Stream addressTypes() { + return Stream.of( + Arguments.of(PostalAddressDto.TypeEnum.BUSINESS, PartyPostalAddress.TypeEnum.BUSINESS), + Arguments.of(PostalAddressDto.TypeEnum.CORRESPONDENCE, PartyPostalAddress.TypeEnum.CORRESPONDENCE), + Arguments.of(PostalAddressDto.TypeEnum.DELIVERYTO, PartyPostalAddress.TypeEnum.DELIVERY_TO), + Arguments.of(PostalAddressDto.TypeEnum.MAILTO, PartyPostalAddress.TypeEnum.MAIL_TO), + Arguments.of(PostalAddressDto.TypeEnum.PO_BOX, PartyPostalAddress.TypeEnum.PO_BOX), + Arguments.of(PostalAddressDto.TypeEnum.POSTAL, PartyPostalAddress.TypeEnum.POSTAL), + Arguments.of(PostalAddressDto.TypeEnum.RESIDENTIAL, PartyPostalAddress.TypeEnum.RESIDENTIAL), + Arguments.of(PostalAddressDto.TypeEnum.STATEMENT, PartyPostalAddress.TypeEnum.STATEMENT) + ); + } } diff --git a/stream-dbs-clients/pom.xml b/stream-dbs-clients/pom.xml index 813d90e98..ed5c9ef6b 100644 --- a/stream-dbs-clients/pom.xml +++ b/stream-dbs-clients/pom.xml @@ -220,7 +220,7 @@ com.backbase.flow.customer-profile.api customer-profile - 1.17.1 + 2.6.0 api zip ${project.build.directory}/yaml