From 5a7722f5f4f4e7aea314c4029ab90d8348d9b6ca Mon Sep 17 00:00:00 2001 From: Enrico Risa Date: Tue, 30 Apr 2024 14:44:42 +0200 Subject: [PATCH 1/2] chore: removes MockWebServer --- edc-tests/e2e-tests/build.gradle.kts | 1 - .../catalog-tests/build.gradle.kts | 1 - .../edr-api-tests/build.gradle.kts | 1 - .../edc/tests/edrv2/NegotiateEdrTest.java | 46 ++++++++------- .../fixtures/build.gradle.kts | 1 - .../tractusx/edc/tests/helpers/Functions.java | 15 ++--- .../transfer/HttpConsumerPullBaseTest.java | 6 +- .../iatp-tests/build.gradle.kts | 1 - .../transfer/DimHttpConsumerPullTest.java | 32 ++++++----- .../iatp/dispatchers/DimDispatcher.java | 35 +++++------- .../iatp/dispatchers/KeycloakDispatcher.java | 57 ------------------- .../policy-tests/build.gradle.kts | 1 - gradle/libs.versions.toml | 2 - 13 files changed, 65 insertions(+), 134 deletions(-) delete mode 100644 edc-tests/edc-controlplane/iatp-tests/src/test/java/org/eclipse/tractusx/edc/tests/transfer/iatp/dispatchers/KeycloakDispatcher.java diff --git a/edc-tests/e2e-tests/build.gradle.kts b/edc-tests/e2e-tests/build.gradle.kts index 5211310e9..5897084e1 100644 --- a/edc-tests/e2e-tests/build.gradle.kts +++ b/edc-tests/e2e-tests/build.gradle.kts @@ -23,7 +23,6 @@ plugins { } dependencies { - testImplementation(libs.okhttp.mockwebserver) testImplementation(libs.restAssured) testImplementation(libs.nimbus.jwt) testImplementation(libs.awaitility) diff --git a/edc-tests/edc-controlplane/catalog-tests/build.gradle.kts b/edc-tests/edc-controlplane/catalog-tests/build.gradle.kts index d0de250c2..42771ae1d 100644 --- a/edc-tests/edc-controlplane/catalog-tests/build.gradle.kts +++ b/edc-tests/edc-controlplane/catalog-tests/build.gradle.kts @@ -29,7 +29,6 @@ dependencies { testImplementation(libs.edc.junit) testImplementation(libs.restAssured) testImplementation(libs.awaitility) - testImplementation(libs.okhttp.mockwebserver) } // do not publish diff --git a/edc-tests/edc-controlplane/edr-api-tests/build.gradle.kts b/edc-tests/edc-controlplane/edr-api-tests/build.gradle.kts index d0de250c2..42771ae1d 100644 --- a/edc-tests/edc-controlplane/edr-api-tests/build.gradle.kts +++ b/edc-tests/edc-controlplane/edr-api-tests/build.gradle.kts @@ -29,7 +29,6 @@ dependencies { testImplementation(libs.edc.junit) testImplementation(libs.restAssured) testImplementation(libs.awaitility) - testImplementation(libs.okhttp.mockwebserver) } // do not publish diff --git a/edc-tests/edc-controlplane/edr-api-tests/src/test/java/org/eclipse/tractusx/edc/tests/edrv2/NegotiateEdrTest.java b/edc-tests/edc-controlplane/edr-api-tests/src/test/java/org/eclipse/tractusx/edc/tests/edrv2/NegotiateEdrTest.java index fa91ed005..bb07930d0 100644 --- a/edc-tests/edc-controlplane/edr-api-tests/src/test/java/org/eclipse/tractusx/edc/tests/edrv2/NegotiateEdrTest.java +++ b/edc-tests/edc-controlplane/edr-api-tests/src/test/java/org/eclipse/tractusx/edc/tests/edrv2/NegotiateEdrTest.java @@ -20,8 +20,6 @@ package org.eclipse.tractusx.edc.tests.edrv2; import jakarta.json.Json; -import okhttp3.mockwebserver.MockResponse; -import okhttp3.mockwebserver.MockWebServer; import org.eclipse.edc.connector.controlplane.contract.spi.event.contractnegotiation.ContractNegotiationAgreed; import org.eclipse.edc.connector.controlplane.contract.spi.event.contractnegotiation.ContractNegotiationFinalized; import org.eclipse.edc.connector.controlplane.contract.spi.event.contractnegotiation.ContractNegotiationInitiated; @@ -36,6 +34,7 @@ import org.eclipse.edc.policy.model.Operator; import org.eclipse.tractusx.edc.tests.helpers.EdrNegotiationHelperFunctions; import org.eclipse.tractusx.edc.tests.helpers.PolicyHelperFunctions; +import org.eclipse.tractusx.edc.tests.helpers.ReceivedEvent; import org.eclipse.tractusx.edc.tests.participant.TransferParticipant; import org.eclipse.tractusx.edc.tests.runtimes.ParticipantRuntime; import org.eclipse.tractusx.edc.tests.runtimes.PgParticipantRuntime; @@ -45,25 +44,29 @@ import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; +import org.mockserver.integration.ClientAndServer; +import org.mockserver.model.HttpResponse; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.stream.Collectors; import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +import static org.eclipse.edc.util.io.Ports.getFreePort; import static org.eclipse.tractusx.edc.tests.TestRuntimeConfiguration.PLATO_BPN; import static org.eclipse.tractusx.edc.tests.TestRuntimeConfiguration.PLATO_NAME; import static org.eclipse.tractusx.edc.tests.TestRuntimeConfiguration.SOKRATES_BPN; import static org.eclipse.tractusx.edc.tests.TestRuntimeConfiguration.SOKRATES_NAME; import static org.eclipse.tractusx.edc.tests.helpers.EdrNegotiationHelperFunctions.createEvent; -import static org.eclipse.tractusx.edc.tests.helpers.Functions.waitForEvent; +import static org.eclipse.tractusx.edc.tests.helpers.Functions.readEvent; import static org.eclipse.tractusx.edc.tests.participant.TractusxParticipantBase.ASYNC_POLL_INTERVAL; import static org.eclipse.tractusx.edc.tests.participant.TractusxParticipantBase.ASYNC_TIMEOUT; import static org.eclipse.tractusx.edc.tests.runtimes.Runtimes.memoryRuntime; import static org.eclipse.tractusx.edc.tests.runtimes.Runtimes.pgRuntime; +import static org.mockserver.model.HttpRequest.request; public class NegotiateEdrTest { @@ -80,11 +83,11 @@ public class NegotiateEdrTest { abstract static class Tests { - MockWebServer server; + ClientAndServer server; @BeforeEach void setup() { - server = new MockWebServer(); + server = ClientAndServer.startClientAndServer("localhost", getFreePort()); } @Test @@ -102,15 +105,15 @@ void negotiateEdr_shouldInvokeCallbacks() throws IOException { createEvent(TransferProcessRequested.class), createEvent(TransferProcessStarted.class)); + var url = "http://%s:%d%s".formatted("localhost", server.getPort(), "/mock/api"); + var assetId = "api-asset-1"; - var url = server.url("/mock/api"); - server.start(); var authCodeHeaderName = "test-authkey"; var authCode = "test-authcode"; Map dataAddress = Map.of( "name", "transfer-test", - "baseUrl", url.toString(), + "baseUrl", url, "type", "HttpData", "contentType", "application/json", "authKey", authCodeHeaderName, @@ -125,19 +128,26 @@ void negotiateEdr_shouldInvokeCallbacks() throws IOException { PLATO.createContractDefinition(assetId, "def-1", accessPolicy, contractPolicy); - expectedEvents.forEach(event -> server.enqueue(new MockResponse())); + var events = new ArrayList(); + server.when(request().withPath("/mock/api")) + .respond(request -> { + var event = readEvent(request); + events.add(event); + return HttpResponse.response().withStatusCode(200); + }); + var callbacks = Json.createArrayBuilder() - .add(EdrNegotiationHelperFunctions.createCallback(url.toString(), true, Set.of("contract.negotiation", "transfer.process"))) + .add(EdrNegotiationHelperFunctions.createCallback(url, true, Set.of("contract.negotiation", "transfer.process"))) .build(); var contractNegotiationId = SOKRATES.edrs().negotiateEdr(PLATO, assetId, callbacks); - var events = expectedEvents.stream() - .map(receivedEvent -> waitForEvent(server)) - .collect(Collectors.toList()); - - + await().pollInterval(ASYNC_POLL_INTERVAL) + .atMost(ASYNC_TIMEOUT) + .untilAsserted(() -> { + assertThat(expectedEvents).usingRecursiveFieldByFieldElementComparator().containsAll(events); + }); await().pollInterval(ASYNC_POLL_INTERVAL) .atMost(ASYNC_TIMEOUT) .untilAsserted(() -> { @@ -145,8 +155,6 @@ void negotiateEdr_shouldInvokeCallbacks() throws IOException { assertThat(edrCaches).hasSize(1); }); - assertThat(expectedEvents).usingRecursiveFieldByFieldElementComparator().containsAll(events); - var edrCaches = SOKRATES.edrs().getEdrEntriesByAssetId(assetId); assertThat(edrCaches).hasSize(1); @@ -174,7 +182,7 @@ void negotiateEdr_shouldInvokeCallbacks() throws IOException { @AfterEach void teardown() throws IOException { - server.shutdown(); + server.stop(); } } diff --git a/edc-tests/edc-controlplane/fixtures/build.gradle.kts b/edc-tests/edc-controlplane/fixtures/build.gradle.kts index 2297b33c6..36972578b 100644 --- a/edc-tests/edc-controlplane/fixtures/build.gradle.kts +++ b/edc-tests/edc-controlplane/fixtures/build.gradle.kts @@ -48,7 +48,6 @@ dependencies { testFixturesImplementation(libs.edc.core.token) testFixturesImplementation(libs.edc.spi.identity.did) testFixturesImplementation(testFixtures(libs.edc.sql.core)) - testFixturesImplementation(libs.okhttp.mockwebserver) testFixturesImplementation(libs.testcontainers.postgres) testCompileOnly(project(":edc-tests:runtime:runtime-memory")) diff --git a/edc-tests/edc-controlplane/fixtures/src/testFixtures/java/org/eclipse/tractusx/edc/tests/helpers/Functions.java b/edc-tests/edc-controlplane/fixtures/src/testFixtures/java/org/eclipse/tractusx/edc/tests/helpers/Functions.java index 11b7b0409..8d5ebffc8 100644 --- a/edc-tests/edc-controlplane/fixtures/src/testFixtures/java/org/eclipse/tractusx/edc/tests/helpers/Functions.java +++ b/edc-tests/edc-controlplane/fixtures/src/testFixtures/java/org/eclipse/tractusx/edc/tests/helpers/Functions.java @@ -20,29 +20,24 @@ package org.eclipse.tractusx.edc.tests.helpers; import com.fasterxml.jackson.databind.ObjectMapper; -import okhttp3.mockwebserver.MockWebServer; import org.bouncycastle.jce.provider.BouncyCastleProvider; +import org.mockserver.model.HttpRequest; +import java.io.IOException; import java.security.InvalidAlgorithmParameterException; import java.security.KeyPair; import java.security.KeyPairGenerator; import java.security.NoSuchAlgorithmException; import java.security.spec.ECGenParameterSpec; -import java.util.concurrent.TimeUnit; public class Functions { private static final ObjectMapper MAPPER = new ObjectMapper(); - public static ReceivedEvent waitForEvent(MockWebServer server) { + public static ReceivedEvent readEvent(HttpRequest request) { try { - var request = server.takeRequest(60, TimeUnit.SECONDS); - if (request != null) { - return MAPPER.readValue(request.getBody().inputStream(), ReceivedEvent.class); - } else { - throw new RuntimeException("Timeout exceeded waiting for events"); - } - } catch (Exception e) { + return MAPPER.readValue(request.getBody().getRawBytes(), ReceivedEvent.class); + } catch (IOException e) { throw new RuntimeException(e); } } diff --git a/edc-tests/edc-controlplane/fixtures/src/testFixtures/java/org/eclipse/tractusx/edc/tests/transfer/HttpConsumerPullBaseTest.java b/edc-tests/edc-controlplane/fixtures/src/testFixtures/java/org/eclipse/tractusx/edc/tests/transfer/HttpConsumerPullBaseTest.java index 5dbf15b60..b980c9695 100644 --- a/edc-tests/edc-controlplane/fixtures/src/testFixtures/java/org/eclipse/tractusx/edc/tests/transfer/HttpConsumerPullBaseTest.java +++ b/edc-tests/edc-controlplane/fixtures/src/testFixtures/java/org/eclipse/tractusx/edc/tests/transfer/HttpConsumerPullBaseTest.java @@ -106,9 +106,8 @@ void transferData_privateBackend() { .withHeader("Edc-Contract-Agreement-Id") .withHeader("Edc-Bpn", sokrates().getBpn()) .withMethod("GET"), VerificationTimes.exactly(1)); - - } + } @Test void transferData_privateBackend_withConsumerDataPlane() { @@ -158,8 +157,7 @@ void transferData_privateBackend_withConsumerDataPlane() { .withHeader("Edc-Bpn", sokrates().getBpn()) .withMethod("GET"), VerificationTimes.exactly(1)); } - - + @AfterEach void teardown() { server.stop(); diff --git a/edc-tests/edc-controlplane/iatp-tests/build.gradle.kts b/edc-tests/edc-controlplane/iatp-tests/build.gradle.kts index 23f1f0231..508ae0389 100644 --- a/edc-tests/edc-controlplane/iatp-tests/build.gradle.kts +++ b/edc-tests/edc-controlplane/iatp-tests/build.gradle.kts @@ -36,7 +36,6 @@ dependencies { testImplementation(libs.netty.mockserver) testImplementation(libs.restAssured) testImplementation(libs.awaitility) - testImplementation(libs.okhttp.mockwebserver) testImplementation(libs.bouncyCastle.bcpkixJdk18on) } diff --git a/edc-tests/edc-controlplane/iatp-tests/src/test/java/org/eclipse/tractusx/edc/tests/transfer/DimHttpConsumerPullTest.java b/edc-tests/edc-controlplane/iatp-tests/src/test/java/org/eclipse/tractusx/edc/tests/transfer/DimHttpConsumerPullTest.java index 750681610..9386ddec7 100644 --- a/edc-tests/edc-controlplane/iatp-tests/src/test/java/org/eclipse/tractusx/edc/tests/transfer/DimHttpConsumerPullTest.java +++ b/edc-tests/edc-controlplane/iatp-tests/src/test/java/org/eclipse/tractusx/edc/tests/transfer/DimHttpConsumerPullTest.java @@ -19,19 +19,21 @@ package org.eclipse.tractusx.edc.tests.transfer; -import okhttp3.mockwebserver.MockWebServer; import org.eclipse.edc.iam.did.spi.document.DidDocument; import org.eclipse.edc.iam.identitytrust.sts.embedded.EmbeddedSecureTokenService; +import org.eclipse.edc.json.JacksonTypeManager; import org.eclipse.edc.junit.annotations.EndToEndTest; +import org.eclipse.edc.spi.types.TypeManager; import org.eclipse.edc.token.JwtGenerationService; import org.eclipse.edc.token.spi.TokenGenerationService; import org.eclipse.tractusx.edc.tests.transfer.iatp.dispatchers.DimDispatcher; -import org.eclipse.tractusx.edc.tests.transfer.iatp.dispatchers.KeycloakDispatcher; import org.eclipse.tractusx.edc.tests.transfer.iatp.harness.IatpParticipant; import org.eclipse.tractusx.edc.tests.transfer.iatp.runtime.IatpParticipantRuntime; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.extension.RegisterExtension; +import org.mockserver.integration.ClientAndServer; +import org.mockserver.model.HttpResponse; import java.io.IOException; import java.security.PrivateKey; @@ -42,21 +44,21 @@ import static org.eclipse.tractusx.edc.tests.transfer.iatp.harness.IatpHelperFunctions.configureParticipant; import static org.eclipse.tractusx.edc.tests.transfer.iatp.runtime.Runtimes.dimRuntime; +import static org.mockserver.model.HttpRequest.request; @EndToEndTest public class DimHttpConsumerPullTest extends AbstractIatpConsumerPullTest { - @RegisterExtension protected static final IatpParticipantRuntime SOKRATES_RUNTIME = dimRuntime(SOKRATES.getName(), SOKRATES.iatpConfiguration(PLATO), SOKRATES.getKeyPair()); - @RegisterExtension protected static final IatpParticipantRuntime PLATO_RUNTIME = dimRuntime(PLATO.getName(), PLATO.iatpConfiguration(SOKRATES), PLATO.getKeyPair()); - private static MockWebServer oauthServer; - private static MockWebServer dimDispatcher; + private static final TypeManager MAPPER = new JacksonTypeManager(); + private static ClientAndServer oauthServer; + private static ClientAndServer dimServer; @BeforeAll - static void prepare() throws IOException { + static void prepare() { var tokenGeneration = new JwtGenerationService(); @@ -64,13 +66,13 @@ static void prepare() throws IOException { SOKRATES.getDid(), tokenServiceFor(tokenGeneration, SOKRATES), PLATO.getDid(), tokenServiceFor(tokenGeneration, PLATO)); - oauthServer = new MockWebServer(); - oauthServer.start(STS.stsUri().getPort()); - oauthServer.setDispatcher(new KeycloakDispatcher(STS.stsUri().getPath() + "/token")); + oauthServer = ClientAndServer.startClientAndServer(STS.stsUri().getPort()); + + oauthServer.when(request().withMethod("POST").withPath(STS.stsUri().getPath() + "/token")) + .respond(HttpResponse.response(MAPPER.writeValueAsString(Map.of("access_token", "token")))); - dimDispatcher = new MockWebServer(); - dimDispatcher.start(DIM_URI.getPort()); - dimDispatcher.setDispatcher(new DimDispatcher(generatorServices)); + dimServer = ClientAndServer.startClientAndServer(DIM_URI.getPort()); + dimServer.when(request().withMethod("POST")).respond(new DimDispatcher(generatorServices)); // create the DIDs cache var dids = new HashMap(); @@ -85,8 +87,8 @@ static void prepare() throws IOException { @AfterAll static void unwind() throws IOException { - oauthServer.shutdown(); - dimDispatcher.shutdown(); + oauthServer.stop(); + dimServer.stop(); } private static EmbeddedSecureTokenService tokenServiceFor(TokenGenerationService tokenGenerationService, IatpParticipant iatpDimParticipant) { diff --git a/edc-tests/edc-controlplane/iatp-tests/src/test/java/org/eclipse/tractusx/edc/tests/transfer/iatp/dispatchers/DimDispatcher.java b/edc-tests/edc-controlplane/iatp-tests/src/test/java/org/eclipse/tractusx/edc/tests/transfer/iatp/dispatchers/DimDispatcher.java index 06cec1a77..5adf5f425 100644 --- a/edc-tests/edc-controlplane/iatp-tests/src/test/java/org/eclipse/tractusx/edc/tests/transfer/iatp/dispatchers/DimDispatcher.java +++ b/edc-tests/edc-controlplane/iatp-tests/src/test/java/org/eclipse/tractusx/edc/tests/transfer/iatp/dispatchers/DimDispatcher.java @@ -19,14 +19,13 @@ package org.eclipse.tractusx.edc.tests.transfer.iatp.dispatchers; -import okhttp3.mockwebserver.Dispatcher; -import okhttp3.mockwebserver.MockResponse; -import okhttp3.mockwebserver.RecordedRequest; import org.eclipse.edc.iam.identitytrust.sts.embedded.EmbeddedSecureTokenService; import org.eclipse.edc.json.JacksonTypeManager; import org.eclipse.edc.spi.iam.TokenRepresentation; import org.eclipse.edc.spi.types.TypeManager; -import org.jetbrains.annotations.NotNull; +import org.mockserver.mock.action.ExpectationResponseCallback; +import org.mockserver.model.HttpRequest; +import org.mockserver.model.HttpResponse; import java.util.Collection; import java.util.Map; @@ -41,7 +40,7 @@ /** * Mock service for DIM interaction. Underlying it uses the {@link EmbeddedSecureTokenService} for generating SI tokens */ -public class DimDispatcher extends Dispatcher { +public class DimDispatcher implements ExpectationResponseCallback { private static final TypeManager MAPPER = new JacksonTypeManager(); private final String path; @@ -56,13 +55,12 @@ public DimDispatcher(Map secureTokenServices this("/", secureTokenServices); } - @NotNull + @Override - @SuppressWarnings({ "unchecked" }) - public MockResponse dispatch(@NotNull RecordedRequest recordedRequest) { - if (recordedRequest.getPath().split("\\?")[0].equals(path)) { + public HttpResponse handle(HttpRequest httpRequest) throws Exception { + if (httpRequest.getPath().getValue().split("\\?")[0].equals(path)) { - var body = MAPPER.readValue(recordedRequest.getBody().readByteArray(), Map.class); + var body = MAPPER.readValue(httpRequest.getBody().getRawBytes(), Map.class); var grant = Optional.ofNullable(body.get("grantAccess")) .map((payload) -> grantAccessHandler((Map) payload)); @@ -70,13 +68,13 @@ public MockResponse dispatch(@NotNull RecordedRequest recordedRequest) { var sign = Optional.ofNullable(body.get("signToken")) .map((payload) -> signTokenHandler((Map) payload)); - return grant.or(() -> sign).orElse(new MockResponse().setResponseCode(404)); + return grant.or(() -> sign).orElse(HttpResponse.response().withStatusCode(404)); } - return new MockResponse().setResponseCode(404); + return HttpResponse.response().withStatusCode(404); } @SuppressWarnings("unchecked") - private MockResponse grantAccessHandler(Map params) { + private HttpResponse grantAccessHandler(Map params) { var issuer = params.get("consumerDid").toString(); var audience = params.get("providerDid").toString(); Collection scopes = (Collection) params.get("credentialTypes"); @@ -88,10 +86,10 @@ private MockResponse grantAccessHandler(Map params) { .map(TokenRepresentation::getToken) .orElseThrow(failure -> new RuntimeException(failure.getFailureDetail())); - return new MockResponse().setBody(MAPPER.writeValueAsString(Map.of("jwt", token))); + return HttpResponse.response(MAPPER.writeValueAsString(Map.of("jwt", token))); } - private MockResponse signTokenHandler(Map params) { + private HttpResponse signTokenHandler(Map params) { var subject = params.get("subject").toString(); var accessToken = params.get("token").toString(); var audience = params.get("audience").toString(); @@ -108,11 +106,6 @@ private MockResponse signTokenHandler(Map params) { .map(TokenRepresentation::getToken) .orElseThrow(failure -> new RuntimeException(failure.getFailureDetail())); - return new MockResponse().setBody(MAPPER.writeValueAsString(Map.of("jwt", token))); - } - - private MockResponse createTokenResponse() { - return new MockResponse().setBody(MAPPER.writeValueAsString(Map.of("jwt", "token"))); + return HttpResponse.response(MAPPER.writeValueAsString(Map.of("jwt", token))); } - } diff --git a/edc-tests/edc-controlplane/iatp-tests/src/test/java/org/eclipse/tractusx/edc/tests/transfer/iatp/dispatchers/KeycloakDispatcher.java b/edc-tests/edc-controlplane/iatp-tests/src/test/java/org/eclipse/tractusx/edc/tests/transfer/iatp/dispatchers/KeycloakDispatcher.java deleted file mode 100644 index c191073d3..000000000 --- a/edc-tests/edc-controlplane/iatp-tests/src/test/java/org/eclipse/tractusx/edc/tests/transfer/iatp/dispatchers/KeycloakDispatcher.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2024 Bayerische Motoren Werke Aktiengesellschaft - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -package org.eclipse.tractusx.edc.tests.transfer.iatp.dispatchers; - -import okhttp3.mockwebserver.Dispatcher; -import okhttp3.mockwebserver.MockResponse; -import okhttp3.mockwebserver.RecordedRequest; -import org.eclipse.edc.json.JacksonTypeManager; -import org.eclipse.edc.spi.types.TypeManager; -import org.jetbrains.annotations.NotNull; - -import java.util.Map; - -public class KeycloakDispatcher extends Dispatcher { - - private static final TypeManager MAPPER = new JacksonTypeManager(); - private final String path; - - public KeycloakDispatcher(String path) { - this.path = path; - } - - public KeycloakDispatcher() { - this("/"); - } - - @NotNull - @Override - public MockResponse dispatch(@NotNull RecordedRequest recordedRequest) { - if (recordedRequest.getPath().split("\\?")[0].equals(path)) { - return createTokenResponse(); - } - return new MockResponse().setResponseCode(404); - } - - private MockResponse createTokenResponse() { - return new MockResponse().setBody(MAPPER.writeValueAsString(Map.of("access_token", "token"))); - } - -} diff --git a/edc-tests/edc-controlplane/policy-tests/build.gradle.kts b/edc-tests/edc-controlplane/policy-tests/build.gradle.kts index d0de250c2..42771ae1d 100644 --- a/edc-tests/edc-controlplane/policy-tests/build.gradle.kts +++ b/edc-tests/edc-controlplane/policy-tests/build.gradle.kts @@ -29,7 +29,6 @@ dependencies { testImplementation(libs.edc.junit) testImplementation(libs.restAssured) testImplementation(libs.awaitility) - testImplementation(libs.okhttp.mockwebserver) } // do not publish diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c7716eff3..3f5844e16 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,7 +13,6 @@ flyway = "10.11.1" jackson = "2.17.0" jakarta-json = "2.0.1" jupiter = "5.10.2" -mockwebserver = "5.0.0-alpha.12" nimbus = "9.37.3" netty-mockserver = "5.15.0" okhttp = "4.12.0" @@ -209,7 +208,6 @@ jakartaJson = { module = "org.glassfish:jakarta.json", version.ref = "jakarta-js junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "jupiter" } nimbus-jwt = { module = "com.nimbusds:nimbus-jose-jwt", version.ref = "nimbus" } okhttp = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" } -okhttp-mockwebserver = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "mockwebserver" } netty-mockserver = { module = "org.mock-server:mockserver-netty", version.ref = "netty-mockserver" } postgres = { module = "org.postgresql:postgresql", version.ref = "postgres" } restAssured = { module = "io.rest-assured:rest-assured", version.ref = "restAssured" } From 2c43352eb40fd752b91b8a4c50858e1046481c04 Mon Sep 17 00:00:00 2001 From: Enrico Risa Date: Tue, 30 Apr 2024 14:49:43 +0200 Subject: [PATCH 2/2] chore: deps file --- DEPENDENCIES | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/DEPENDENCIES b/DEPENDENCIES index 27394b4d7..b2ade5cd8 100644 --- a/DEPENDENCIES +++ b/DEPENDENCIES @@ -114,17 +114,11 @@ maven/mavencentral/com.nimbusds/oauth2-oidc-sdk/10.7.1, Apache-2.0, approved, cl maven/mavencentral/com.nimbusds/oauth2-oidc-sdk/11.9.1, Apache-2.0, approved, #12667 maven/mavencentral/com.puppycrawl.tools/checkstyle/10.15.0, LGPL-2.1-or-later, restricted, clearlydefined maven/mavencentral/com.samskivert/jmustache/1.15, BSD-2-Clause, approved, clearlydefined -maven/mavencentral/com.squareup.okhttp3/mockwebserver/5.0.0-alpha.12, Apache-2.0, approved, clearlydefined -maven/mavencentral/com.squareup.okhttp3/mockwebserver3/5.0.0-alpha.12, Apache-2.0, approved, clearlydefined maven/mavencentral/com.squareup.okhttp3/okhttp-dnsoverhttps/4.12.0, Apache-2.0, approved, #11159 -maven/mavencentral/com.squareup.okhttp3/okhttp-jvm/5.0.0-alpha.12, Apache-2.0, approved, #9263 maven/mavencentral/com.squareup.okhttp3/okhttp/4.12.0, Apache-2.0, approved, #11156 maven/mavencentral/com.squareup.okhttp3/okhttp/4.9.3, Apache-2.0 AND MPL-2.0, approved, #3225 -maven/mavencentral/com.squareup.okhttp3/okhttp/5.0.0-alpha.12, Apache-2.0, approved, clearlydefined maven/mavencentral/com.squareup.okio/okio-jvm/3.6.0, Apache-2.0, approved, #11158 -maven/mavencentral/com.squareup.okio/okio-jvm/3.7.0, Apache-2.0, approved, clearlydefined maven/mavencentral/com.squareup.okio/okio/3.6.0, Apache-2.0, approved, #11155 -maven/mavencentral/com.squareup.okio/okio/3.7.0, Apache-2.0, approved, clearlydefined maven/mavencentral/com.sun.activation/jakarta.activation/2.0.0, EPL-2.0 OR BSD-3-Clause OR GPL-2.0-only with Classpath-exception-2.0, approved, ee4j.jaf maven/mavencentral/com.sun.activation/jakarta.activation/2.0.1, EPL-2.0 OR BSD-3-Clause OR GPL-2.0-only with Classpath-exception-2.0, approved, ee4j.jaf maven/mavencentral/com.sun.mail/mailapi/1.6.2, CDDL-1.1 OR GPL-2.0-only WITH Classpath-exception-2.0, approved, clearlydefined @@ -587,15 +581,10 @@ maven/mavencentral/org.javassist/javassist/3.28.0-GA, Apache-2.0 OR LGPL-2.1-or- maven/mavencentral/org.javassist/javassist/3.29.2-GA, Apache-2.0 AND LGPL-2.1-or-later AND MPL-1.1, approved, #6023 maven/mavencentral/org.javassist/javassist/3.30.2-GA, Apache-2.0 AND LGPL-2.1-or-later AND MPL-1.1, approved, #12108 maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-common/1.9.10, Apache-2.0, approved, #14186 -maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.8.0, Apache-2.0, approved, #8807 -maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.8.21, Apache-2.0, approved, #8807 maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-jdk7/1.9.10, Apache-2.0, approved, #14193 -maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.8.0, Apache-2.0, approved, #8919 maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.8.21, Apache-2.0, approved, #8919 maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib-jdk8/1.9.10, Apache-2.0, approved, #14191 -maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib/1.8.21, Apache-2.0, approved, #8865 maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib/1.9.10, Apache-2.0, approved, #11827 -maven/mavencentral/org.jetbrains.kotlin/kotlin-stdlib/1.9.21, Apache-2.0, approved, #11827 maven/mavencentral/org.jetbrains/annotations/13.0, Apache-2.0, approved, clearlydefined maven/mavencentral/org.jetbrains/annotations/17.0.0, Apache-2.0, approved, clearlydefined maven/mavencentral/org.jetbrains/annotations/24.1.0, Apache-2.0, approved, clearlydefined