### Question:
NewProfileConfigurationMapper { public NewProfileConfiguration mapToNewProfileConfiguration(OldProfileConfiguration oldProfileConfiguration) { OldBankProfileSetting setting = oldProfileConfiguration.getSetting(); ConsentTypeBankSetting consentTypes = new ConsentTypeBankSetting(setting.isBankOfferedConsentSupport(), setting.isAllPsd2Support(), setting.isAvailableAccountsConsentSupported(), setting.getFrequencyPerDay(), setting.getNotConfirmedConsentExpirationPeriodMs(), setting.getConsentLifetime(), false, false); AisRedirectLinkBankSetting aisRedirectLinkToOnlineBanking = new AisRedirectLinkBankSetting(setting.getAisRedirectUrlToAspsp()); AisTransactionBankSetting transactionParameters = new AisTransactionBankSetting(setting.getAvailableBookingStatuses(), setting.isTransactionsWithoutBalancesSupported(), Optional.ofNullable(setting.getSupportedTransactionApplicationTypes()).orElse(Collections.emptyList())); DeltaReportBankSetting deltaReportSettings = new DeltaReportBankSetting(setting.isEntryReferenceFromSupported(), setting.isDeltaListSupported()); OneTimeConsentScaBankSetting scaRequirementsForOneTimeConsents = new OneTimeConsentScaBankSetting(setting.isScaByOneTimeAvailableAccountsConsentRequired(), DEFAULT_SCA_BY_ONE_TIME_GLOBAL_CONSENT_REQUIRED); AisAspspProfileBankSetting ais = new AisAspspProfileBankSetting(consentTypes, aisRedirectLinkToOnlineBanking, transactionParameters, deltaReportSettings, scaRequirementsForOneTimeConsents); PisRedirectLinkBankSetting pisRedirectLinkToOnlineBanking = new PisRedirectLinkBankSetting(setting.getPisRedirectUrlToAspsp(), setting.getPisPaymentCancellationRedirectUrlToAspsp(), setting.getPaymentCancellationRedirectUrlExpirationTimeMs()); NewPisAspspProfileBankSetting pis = new NewPisAspspProfileBankSetting(setting.getSupportedPaymentTypeAndProductMatrix() .entrySet().stream() .collect(Collectors.toMap(e -> PaymentType.valueOf(e.getKey()), e -> new ArrayList<>(e.getValue()))), setting.getTransactionLifetime(), setting.getNotConfirmedPaymentExpirationPeriodMs(), setting.isPaymentCancellationAuthorizationMandated(), pisRedirectLinkToOnlineBanking); PiisAspspProfileBankSetting piis = new PiisAspspProfileBankSetting(setting.isPiisConsentSupported() ? PiisConsentSupported.ASPSP_CONSENT_SUPPORTED : PiisConsentSupported.NOT_SUPPORTED, new PiisRedirectLinkBankSetting(DEFAULT_PIIS_REDIRECT_URL)); SbAspspProfileBankSetting sb = new SbAspspProfileBankSetting(setting.isSigningBasketSupported(), DEFAULT_SIGNING_BASKET_MAX_ENTRIES, DEFAULT_NOT_CONFIRMED_SB_EXPIRATION_TIME_MS); CommonAspspProfileBankSetting common = new CommonAspspProfileBankSetting(setting.getScaApproaches(), setting.getScaRedirectFlow(), DEFAULT_OAUTH_CONFIGURATION_URL, setting.getStartAuthorisationMode(), setting.isTppSignatureRequired(), setting.isPsuInInitialRequestMandated(), setting.getRedirectUrlExpirationTimeMs(), setting.getAuthorisationExpirationTimeMs(), setting.isForceXs2aBaseUrl(), setting.getXs2aBaseUrl(), setting.getSupportedAccountReferenceFields(), setting.getMulticurrencyAccountLevel(), setting.isCombinedServiceIndicator(), true, Collections.singletonList(NotificationSupportedMode.NONE), false, false, false, TppUriCompliance.WARNING); NewProfileConfiguration result = new NewProfileConfiguration(); result.setSetting(new NewBankProfileSetting(ais, pis, piis, sb, common)); return result; }  NewProfileConfiguration mapToNewProfileConfiguration(OldProfileConfiguration oldProfileConfiguration);  }### Answer:
@Test void mapToNewProfileConfiguration() { OldProfileConfiguration oldProfileConfiguration = jsonReader.getObjectFromFile("json/mapper/old-profile-configuration.json", OldProfileConfiguration.class); NewProfileConfiguration expectedProfile = jsonReader.getObjectFromFile("json/mapper/new-profile-configuration.json", NewProfileConfiguration.class); NewProfileConfiguration actualProfile = newProfileConfigurationMapper.mapToNewProfileConfiguration(oldProfileConfiguration); assertEquals(expectedProfile, actualProfile); }