diff --git a/.github/workflows/develop-push-merge.yml b/.github/workflows/develop-push-merge.yml index fcbb399d8b..2a1f9b45a9 100644 --- a/.github/workflows/develop-push-merge.yml +++ b/.github/workflows/develop-push-merge.yml @@ -62,26 +62,30 @@ jobs: OPENSHIFT_TOKEN: ${{ secrets.OPENSHIFT_TOKEN }} # CODECOV Upload BEGIN - - uses: codecov/codecov-action@v1 + - uses: codecov/codecov-action@v4 with: + token: ${{ secrets.CODECOV_TOKEN }} directory: ./last-module-codecoverage/ flags: backend verbose: true - - uses: codecov/codecov-action@v1 + - uses: codecov/codecov-action@v4 with: + token: ${{ secrets.CODECOV_TOKEN }} directory: ./consent-ui/ flags: frontend verbose: true - - uses: codecov/codecov-action@v1 + - uses: codecov/codecov-action@v4 with: + token: ${{ secrets.CODECOV_TOKEN }} directory: ./fintech-examples/fintech-last-module-codecoverage/ flags: fintech verbose: true - - uses: codecov/codecov-action@v1 + - uses: codecov/codecov-action@v4 with: + token: ${{ secrets.CODECOV_TOKEN }} directory: ./fintech-examples/fintech-ui/ flags: fintech verbose: true diff --git a/opba-banking-rest-impl/src/test/java/de/adorsys/opba/tppbankingapi/controller/TestBankSearchPerformance.java b/opba-banking-rest-impl/src/test/java/de/adorsys/opba/tppbankingapi/controller/TestBankSearchPerformance.java index 1b3047091d..380eff7c40 100644 --- a/opba-banking-rest-impl/src/test/java/de/adorsys/opba/tppbankingapi/controller/TestBankSearchPerformance.java +++ b/opba-banking-rest-impl/src/test/java/de/adorsys/opba/tppbankingapi/controller/TestBankSearchPerformance.java @@ -6,6 +6,7 @@ import de.adorsys.opba.tppbankingapi.dto.TestResult; import de.adorsys.opba.tppbankingapi.services.StatisticService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.RandomStringUtils; import org.jetbrains.annotations.NotNull; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -14,7 +15,6 @@ import org.springframework.test.context.ActiveProfiles; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; -import org.testcontainers.shaded.org.apache.commons.lang.RandomStringUtils; import java.time.Instant; import java.util.ArrayList; diff --git a/opba-protocols/xs2a-protocol-tests/xs2a-bdd-wiremock/pom.xml b/opba-protocols/xs2a-protocol-tests/xs2a-bdd-wiremock/pom.xml index 8880b0d413..60578838f4 100644 --- a/opba-protocols/xs2a-protocol-tests/xs2a-bdd-wiremock/pom.xml +++ b/opba-protocols/xs2a-protocol-tests/xs2a-bdd-wiremock/pom.xml @@ -109,6 +109,7 @@ mockedsandbox/**/*.* **/*.yml + false diff --git a/opba-protocols/xs2a-protocol-tests/xs2a-bdd-wiremock/src/main/java/de/adorsys/opba/protocol/xs2a/tests/e2e/wiremock/mocks/MockServers.java b/opba-protocols/xs2a-protocol-tests/xs2a-bdd-wiremock/src/main/java/de/adorsys/opba/protocol/xs2a/tests/e2e/wiremock/mocks/MockServers.java index efaecc404d..eb4d8a68ce 100644 --- a/opba-protocols/xs2a-protocol-tests/xs2a-bdd-wiremock/src/main/java/de/adorsys/opba/protocol/xs2a/tests/e2e/wiremock/mocks/MockServers.java +++ b/opba-protocols/xs2a-protocol-tests/xs2a-bdd-wiremock/src/main/java/de/adorsys/opba/protocol/xs2a/tests/e2e/wiremock/mocks/MockServers.java @@ -18,6 +18,7 @@ import de.adorsys.opba.protocol.xs2a.service.xs2a.authenticate.embedded.Xs2aAisAuthenticateUserConsentWithPin; import de.adorsys.opba.protocol.xs2a.service.xs2a.consent.CreateAisAccountListConsentService; import de.adorsys.opba.protocol.xs2a.tests.e2e.stages.CommonGivenStages; +import de.adorsys.xs2a.adapter.api.config.AdapterConfig; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; import org.assertj.core.api.Assertions; @@ -26,9 +27,15 @@ import java.io.File; import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.net.URL; +import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; import java.util.Arrays; +import java.util.Properties; import java.util.UUID; import java.util.function.Consumer; @@ -336,9 +343,27 @@ public SELF embedded_mock_of_postbank_for_max_musterman_accounts_running() { WireMockConfiguration config = WireMockConfiguration.options().dynamicPort() .usingFilesUnderClasspath("mockedsandbox/restrecord/embedded/multi-sca/accounts/postbank/"); startWireMock(config, POSTBANK_BANK_ID, it -> it.setUrl("http://localhost:" + sandbox.port() + "/{Service Group}/DE/Postbank")); + setSandboxPortInAdapterConfig(sandbox.port()); return self(); } + @SneakyThrows + public void setSandboxPortInAdapterConfig(int port) { + Path resourcePath = Paths.get(MockServers.class.getClassLoader().getResource("adapter.config.properties").toURI()); + log.info(resourcePath.toString()); + Properties props = new Properties(); + try (InputStream input = Files.newInputStream(resourcePath)) { + props.load(input); + } + props.setProperty("deutsche-bank.aspsp.certificate.url", "http://localhost:" + port + "/pb/aspsp-certificates/tpp-pb-password_cert.pem"); + + Path tempFile = Files.createTempFile("temp", ".properties"); + try (OutputStream output = Files.newOutputStream(tempFile)) { + props.store(output, null); + } + Files.move(tempFile, resourcePath, StandardCopyOption.REPLACE_EXISTING); + AdapterConfig.reload(); + } public SELF decoupled_embedded_approach_sca_decoupled_start_mock_of_sandbox_for_max_musterman_accounts_running() { diff --git a/opba-protocols/xs2a-protocol-tests/xs2a-bdd-wiremock/src/main/resources/mockedsandbox/restrecord/embedded/multi-sca/accounts/postbank/mappings/get-certificate-pem.json b/opba-protocols/xs2a-protocol-tests/xs2a-bdd-wiremock/src/main/resources/mockedsandbox/restrecord/embedded/multi-sca/accounts/postbank/mappings/get-certificate-pem.json new file mode 100644 index 0000000000..8f90c83d3c --- /dev/null +++ b/opba-protocols/xs2a-protocol-tests/xs2a-bdd-wiremock/src/main/resources/mockedsandbox/restrecord/embedded/multi-sca/accounts/postbank/mappings/get-certificate-pem.json @@ -0,0 +1,19 @@ +{ + "scenarioName": "AccountsListUsingPostbankEmbedded", + "newScenarioState": "GetCertificatePem", + "request" : { + "urlPattern" : "/pb/aspsp-certificates/tpp-pb-password_cert.pem", + "method" : "GET", + "headers" : { + } + }, + "response" : { + "status" : 200, + "body" : "-----BEGIN CERTIFICATE-----\nMIICMzCCAZygAwIBAgIJALiPnVsvq8dsMA0GCSqGSIb3DQEBBQUAMFMxCzAJBgNV BAYTAlVTMQwwCgYDVQQIEwNmb28xDDAKBgNVBAcTA2ZvbzEMMAoGA1UEChMDZm9v MQwwCgYDVQQLEwNmb28xDDAKBgNVBAMTA2ZvbzAeFw0xMzAzMTkxNTQwMTlaFw0x ODAzMTgxNTQwMTlaMFMxCzAJBgNVBAYTAlVTMQwwCgYDVQQIEwNmb28xDDAKBgNV BAcTA2ZvbzEMMAoGA1UEChMDZm9vMQwwCgYDVQQLEwNmb28xDDAKBgNVBAMTA2Zv bzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAzdGfxi9CNbMf1UUcvDQh7MYB OveIHyc0E0KIbhjK5FkCBU4CiZrbfHagaW7ZEcN0tt3EvpbOMxxc/ZQU2WN/s/wP xph0pSfsfFsTKM4RhTWD2v4fgk+xZiKd1p0+L4hTtpwnEw0uXRVd0ki6muwV5y/P +5FHUeldq+pgTcgzuK8CAwEAAaMPMA0wCwYDVR0PBAQDAgLkMA0GCSqGSIb3DQEB BQUAA4GBAJiDAAtY0mQQeuxWdzLRzXmjvdSuL9GoyT3BF/jSnpxz5/58dba8pWen v3pj4P3w5DoOso0rzkZy2jEsEitlVM2mLSbQpMM+MUVQCQoiG6W9xuCFuxSrwPIS pAqEAuV4DNoxQKKWmhVv+J0ptMWD25Pnpxeq5sXzghfJnslJlQND\n-----END CERTIFICATE-----", + "headers" : { + "Content-Type" : "application/octet-stream" + } + }, + "uuid" : "96f5dbd8-0def-4ca0-9aa5-3ee061adc195", + "persistent" : true +} \ No newline at end of file diff --git a/opba-protocols/xs2a-protocol-tests/xs2a-bdd-wiremock/src/test/java/de/adorsys/opba/protocol/xs2a/tests/e2e/wiremock/WiremockConsentE2EXs2aProtocolTest.java b/opba-protocols/xs2a-protocol-tests/xs2a-bdd-wiremock/src/test/java/de/adorsys/opba/protocol/xs2a/tests/e2e/wiremock/WiremockConsentE2EXs2aProtocolTest.java index e61e725444..12f4be934a 100644 --- a/opba-protocols/xs2a-protocol-tests/xs2a-bdd-wiremock/src/test/java/de/adorsys/opba/protocol/xs2a/tests/e2e/wiremock/WiremockConsentE2EXs2aProtocolTest.java +++ b/opba-protocols/xs2a-protocol-tests/xs2a-bdd-wiremock/src/test/java/de/adorsys/opba/protocol/xs2a/tests/e2e/wiremock/WiremockConsentE2EXs2aProtocolTest.java @@ -10,7 +10,10 @@ import de.adorsys.opba.protocol.xs2a.tests.e2e.wiremock.mocks.WiremockAccountInformationRequest; import de.adorsys.opba.protocol.xs2a.tests.e2e.wiremock.mocks.Xs2aProtocolApplication; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.MethodOrderer; +import org.junit.jupiter.api.Order; import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestMethodOrder; import org.junit.jupiter.api.io.TempDir; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; @@ -59,6 +62,7 @@ @Transactional(propagation = Propagation.NOT_SUPPORTED) @SpringBootTest(classes = {Xs2aProtocolApplication.class, JGivenConfig.class}, webEnvironment = RANDOM_PORT) @ActiveProfiles(profiles = {ONE_TIME_POSTGRES_RAMFS, MOCKED_SANDBOX}) +@TestMethodOrder(MethodOrderer.OrderAnnotation.class) class WiremockConsentE2EXs2aProtocolTest extends SpringScenarioTest>, AccountInformationResult> { private static final String OAUTH2_CODE = "2buKRxcMvi79w8xYLFaNsoyh"; @@ -132,6 +136,7 @@ void testIngAccountsListWithConsentUsingRedirect() { } @Test + @Order(1) // test should run before testDeutscheBank, because it's impossible to reinitialize static field URL_TO_CERTIFICATE of DeutscheBankPsuPasswordEncryptionService, which is needed to mock getCertificate call void testPostbankAccountsListWithConsentUsingEmbedded() { given() .embedded_mock_of_postbank_for_max_musterman_accounts_running() diff --git a/pom.xml b/pom.xml index b08b66b67c..544402620c 100644 --- a/pom.xml +++ b/pom.xml @@ -164,7 +164,7 @@ 3.12.2 1.1.0 2.25.1 - 1.16.3 + 1.19.8 5.10.0 1.3.17 3.4.0