Skip to content

Commit 312559e

Browse files
authored
chore: apply the new EDC upstream testing component for E2E (#21)
1 parent e2dd5e5 commit 312559e

17 files changed

Lines changed: 322 additions & 595 deletions

File tree

extensions/postgres-cdc/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ dependencies {
2626
testImplementation(libs.edc.junit)
2727
testImplementation(libs.testcontainers.junit)
2828
testImplementation(libs.testcontainers.postgres)
29+
testImplementation(project(":system-tests:system-test-fixtures"))
2930
testImplementation(testFixtures(libs.edc.fixtures.sql))
3031

3132
}

extensions/postgres-cdc/src/test/java/org/eclipse/edc/virtualized/controlplane/store/cdc/listener/PostgresReplicationListenerTest.java

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,12 @@
2727
import org.junit.jupiter.api.extension.BeforeAllCallback;
2828
import org.junit.jupiter.api.extension.RegisterExtension;
2929
import org.mockito.ArgumentCaptor;
30-
import org.testcontainers.containers.PostgreSQLContainer;
31-
import org.testcontainers.images.builder.ImageFromDockerfile;
3230
import org.testcontainers.junit.jupiter.Testcontainers;
33-
import org.testcontainers.utility.DockerImageName;
3431

3532
import java.util.function.Function;
3633

3734
import static org.assertj.core.api.Assertions.assertThat;
35+
import static org.eclipse.edc.virtualized.test.system.fixtures.DockerImages.createPgContainer;
3836
import static org.mockito.ArgumentMatchers.any;
3937
import static org.mockito.Mockito.mock;
4038
import static org.mockito.Mockito.verify;
@@ -45,20 +43,9 @@
4543
@Testcontainers
4644
public class PostgresReplicationListenerTest {
4745

48-
static final ImageFromDockerfile BASE_IMAGE = new ImageFromDockerfile()
49-
.withDockerfileFromBuilder(builder ->
50-
builder.from("postgres:17.5")
51-
.run("apt update && apt install -y postgresql-17-wal2json postgresql-contrib")
52-
.build());
53-
54-
static final DockerImageName PG_IMAGE = DockerImageName.parse(BASE_IMAGE.get())
55-
.asCompatibleSubstituteFor(PostgreSQLContainer.IMAGE);
56-
static final PostgreSQLContainer<?> POSTGRESQL_CONTAINER = new PostgreSQLContainer<>(PG_IMAGE)
57-
.withCommand("-c", "wal_level=logical");
58-
5946
@Order(0)
6047
@RegisterExtension
61-
static final PostgresqlEndToEndExtension POSTGRESQL_EXTENSION = new PostgresqlEndToEndExtension(POSTGRESQL_CONTAINER);
48+
static final PostgresqlEndToEndExtension POSTGRESQL_EXTENSION = new PostgresqlEndToEndExtension(createPgContainer());
6249

6350
@Order(1)
6451
@RegisterExtension

gradle/libs.versions.toml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ edc-core-dataplane-signaling-transfer = { module = "org.eclipse.edc:transfer-dat
6060
# EDC Lib modules
6161
edc-lib-store = { module = "org.eclipse.edc:store-lib", version.ref = "edc" }
6262
edc-lib-query = { module = "org.eclipse.edc:query-lib", version.ref = "edc" }
63+
edc-lib-jsonld = { module = "org.eclipse.edc:json-ld-lib", version.ref = "edc" }
6364
edc-lib-transform = { module = "org.eclipse.edc:transform-lib", version.ref = "edc" }
6465
edc-lib-controlplane-transform = { module = "org.eclipse.edc:control-plane-transform", version.ref = "edc" }
6566
edc-lib-jersey-providers = { module = "org.eclipse.edc:jersey-providers-lib", version.ref = "edc" }
@@ -90,8 +91,6 @@ edc-bom-dataplane = { module = "org.eclipse.edc:dataplane-base-bom", version.ref
9091

9192
## EDC Fixtures
9293
edc-fixtures-sql = { module = "org.eclipse.edc:sql-test-fixtures", version.ref = "edc" }
93-
edc-fixtures-managementapi = { module = "org.eclipse.edc:management-api-test-fixtures", version.ref = "edc" }
94-
9594

9695
# Other libraries
9796
awaitility = { module = "org.awaitility:awaitility", version.ref = "awaitility" }

system-tests/dsp-tck-tests/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ dependencies {
2323
testImplementation(libs.edc.junit)
2424
testImplementation(testFixtures(libs.edc.fixtures.sql))
2525
testImplementation(testFixtures(project(":extensions:lib:nats-lib")))
26+
testImplementation(project(":system-tests:system-test-fixtures"))
2627
testImplementation(libs.testcontainers.junit)
2728
testImplementation(libs.testcontainers.vault)
2829
testImplementation(libs.testcontainers.postgres)

system-tests/dsp-tck-tests/src/test/java/org/eclipse/edc/virtualized/tck/dsp/MemoryEdcVirtualCompatibilityDockerTest.java

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,8 @@
1515
package org.eclipse.edc.virtualized.tck.dsp;
1616

1717
import org.eclipse.edc.junit.annotations.EndToEndTest;
18-
import org.eclipse.edc.junit.extensions.EmbeddedRuntime;
18+
import org.eclipse.edc.junit.extensions.ComponentRuntimeExtension;
1919
import org.eclipse.edc.junit.extensions.RuntimeExtension;
20-
import org.eclipse.edc.junit.extensions.RuntimePerClassExtension;
2120
import org.eclipse.edc.junit.testfixtures.TestUtils;
2221
import org.eclipse.edc.spi.monitor.ConsoleMonitor;
2322
import org.eclipse.edc.spi.system.configuration.Config;
@@ -36,36 +35,30 @@
3635
import java.util.HashMap;
3736

3837
import static org.assertj.core.api.Assertions.fail;
39-
import static org.eclipse.edc.util.io.Ports.getFreePort;
4038

4139
@EndToEndTest
4240
@Testcontainers
4341
public class MemoryEdcVirtualCompatibilityDockerTest {
4442

43+
protected static final String CONNECTOR = "CUT";
44+
4545
private static final GenericContainer<?> TCK_CONTAINER = new TckContainer<>("eclipsedataspacetck/dsp-tck-runtime:1.0.0-RC4");
46+
4647
@RegisterExtension
47-
protected static RuntimeExtension runtime = new RuntimePerClassExtension(new EmbeddedRuntime("CUT",
48-
":system-tests:runtimes:tck:tck-controlplane-memory"
49-
).configurationProvider(MemoryEdcVirtualCompatibilityDockerTest::runtimeConfiguration));
48+
protected static RuntimeExtension runtime = ComponentRuntimeExtension.Builder.newInstance()
49+
.name(CONNECTOR)
50+
.modules(":system-tests:runtimes:tck:tck-controlplane-memory")
51+
.configurationProvider(MemoryEdcVirtualCompatibilityDockerTest::runtimeConfiguration)
52+
.build();
5053

5154

5255
private static Config runtimeConfiguration() {
5356
return ConfigFactory.fromMap(new HashMap<>() {
5457
{
5558
put("edc.participant.id", "participantContextId");
56-
put("web.http.port", "8080");
57-
put("web.http.path", "/api");
58-
put("web.http.version.port", String.valueOf(getFreePort()));
59-
put("web.http.version.path", "/api/version");
60-
put("web.http.control.port", String.valueOf(getFreePort()));
61-
put("web.http.control.path", "/api/control");
62-
put("web.http.management.port", "8081");
63-
put("web.http.management.path", "/api/management");
6459
put("web.http.protocol.port", "8282"); // this must match the configured connector url in resources/docker.tck.properties
6560
put("web.http.protocol.path", "/api/dsp"); // this must match the configured connector url in resources/docker.tck.properties
66-
put("web.api.auth.key", "password");
6761
put("edc.dsp.callback.address", "http://host.docker.internal:8282/api/dsp"); // host.docker.internal is required by the container to communicate with the host
68-
put("edc.management.context.enabled", "true");
6962
put("edc.hostname", "host.docker.internal");
7063
put("edc.component.id", "DSP-compatibility-test");
7164
put("edc.transfer.proxy.token.signer.privatekey.alias", "private-key");

system-tests/dsp-tck-tests/src/test/java/org/eclipse/edc/virtualized/tck/dsp/PostgresVirtualCompatibilityDockerTest.java

Lines changed: 9 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,8 @@
1515
package org.eclipse.edc.virtualized.tck.dsp;
1616

1717
import org.eclipse.edc.junit.annotations.PostgresqlIntegrationTest;
18-
import org.eclipse.edc.junit.extensions.EmbeddedRuntime;
18+
import org.eclipse.edc.junit.extensions.ComponentRuntimeExtension;
1919
import org.eclipse.edc.junit.extensions.RuntimeExtension;
20-
import org.eclipse.edc.junit.extensions.RuntimePerClassExtension;
2120
import org.eclipse.edc.junit.testfixtures.TestUtils;
2221
import org.eclipse.edc.spi.monitor.ConsoleMonitor;
2322
import org.eclipse.edc.spi.system.configuration.Config;
@@ -31,19 +30,16 @@
3130
import org.junit.jupiter.api.extension.RegisterExtension;
3231
import org.testcontainers.containers.BindMode;
3332
import org.testcontainers.containers.GenericContainer;
34-
import org.testcontainers.containers.PostgreSQLContainer;
3533
import org.testcontainers.containers.SelinuxContext;
3634
import org.testcontainers.containers.wait.strategy.LogMessageWaitStrategy;
37-
import org.testcontainers.images.builder.ImageFromDockerfile;
3835
import org.testcontainers.junit.jupiter.Testcontainers;
39-
import org.testcontainers.utility.DockerImageName;
4036

4137
import java.nio.file.Path;
4238
import java.time.Duration;
4339
import java.util.HashMap;
4440

4541
import static org.assertj.core.api.Assertions.fail;
46-
import static org.eclipse.edc.util.io.Ports.getFreePort;
42+
import static org.eclipse.edc.virtualized.test.system.fixtures.DockerImages.createPgContainer;
4743

4844
@PostgresqlIntegrationTest
4945
@Testcontainers
@@ -52,29 +48,20 @@ public class PostgresVirtualCompatibilityDockerTest {
5248

5349
protected static final String CONNECTOR = "CUT";
5450

55-
static final ImageFromDockerfile BASE_IMAGE = new ImageFromDockerfile()
56-
.withDockerfileFromBuilder(builder ->
57-
builder.from("postgres:17.5")
58-
.run("apt update && apt install -y postgresql-17-wal2json postgresql-contrib")
59-
.build());
60-
61-
static final DockerImageName PG_IMAGE = DockerImageName.parse(BASE_IMAGE.get())
62-
.asCompatibleSubstituteFor(PostgreSQLContainer.IMAGE);
63-
64-
@SuppressWarnings("resource")
65-
static final PostgreSQLContainer<?> POSTGRESQL_CONTAINER = new PostgreSQLContainer<>(PG_IMAGE)
66-
.withCommand("-c", "wal_level=logical");
67-
6851
@Order(0)
6952
@RegisterExtension
70-
static final PostgresqlEndToEndExtension POSTGRESQL_EXTENSION = new PostgresqlEndToEndExtension(POSTGRESQL_CONTAINER);
53+
static final PostgresqlEndToEndExtension POSTGRESQL_EXTENSION = new PostgresqlEndToEndExtension(createPgContainer());
54+
7155
@Order(0)
7256
@RegisterExtension
7357
static final NatsEndToEndExtension NATS_EXTENSION = new NatsEndToEndExtension();
7458
@RegisterExtension
75-
static final RuntimeExtension RUNTIME = new RuntimePerClassExtension(new EmbeddedRuntime(CONNECTOR, ":system-tests:runtimes:tck:tck-controlplane-postgres")
59+
static final RuntimeExtension RUNTIME = ComponentRuntimeExtension.Builder.newInstance()
60+
.name(CONNECTOR)
61+
.modules(":system-tests:runtimes:tck:tck-controlplane-postgres")
7662
.configurationProvider(PostgresVirtualCompatibilityDockerTest::runtimeConfiguration)
77-
.configurationProvider(() -> POSTGRESQL_EXTENSION.configFor(CONNECTOR.toLowerCase())));
63+
.configurationProvider(() -> POSTGRESQL_EXTENSION.configFor(CONNECTOR.toLowerCase()))
64+
.build();
7865
@Order(1)
7966
@RegisterExtension
8067
static final BeforeAllCallback SETUP = context -> {
@@ -89,19 +76,9 @@ private static Config runtimeConfiguration() {
8976
return ConfigFactory.fromMap(new HashMap<>() {
9077
{
9178
put("edc.participant.id", "participantContextId");
92-
put("web.http.port", "8080");
93-
put("web.http.path", "/api");
94-
put("web.http.version.port", String.valueOf(getFreePort()));
95-
put("web.http.version.path", "/api/version");
96-
put("web.http.control.port", String.valueOf(getFreePort()));
97-
put("web.http.control.path", "/api/control");
98-
put("web.http.management.port", "8081");
99-
put("web.http.management.path", "/api/management");
10079
put("web.http.protocol.port", "8282"); // this must match the configured connector url in resources/docker.tck.properties
10180
put("web.http.protocol.path", "/api/dsp"); // this must match the configured connector url in resources/docker.tck.properties
102-
put("web.api.auth.key", "password");
10381
put("edc.dsp.callback.address", "http://host.docker.internal:8282/api/dsp"); // host.docker.internal is required by the container to communicate with the host
104-
put("edc.management.context.enabled", "true");
10582
put("edc.hostname", "host.docker.internal");
10683
put("edc.component.id", "DSP-compatibility-test");
10784
put("edc.transfer.proxy.token.signer.privatekey.alias", "private-key");

system-tests/runtime-tests/build.gradle.kts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,15 @@ plugins {
1919
dependencies {
2020
testImplementation(libs.awaitility)
2121
testImplementation(libs.edc.spi.dataplane)
22+
testImplementation(libs.edc.spi.jsonld)
23+
testImplementation(libs.edc.spi.control.plane)
2224
testImplementation(libs.edc.spi.participantcontext.config)
25+
testImplementation(libs.edc.lib.jsonld)
2326
testImplementation(libs.edc.junit)
2427
testImplementation(libs.restAssured)
2528
testImplementation(testFixtures(libs.edc.fixtures.sql))
26-
testImplementation(testFixtures(libs.edc.fixtures.managementapi))
27-
testImplementation(testFixtures((project(":system-tests:system-test-fixtures"))))
2829
testImplementation(testFixtures(project(":extensions:lib:nats-lib")))
30+
testImplementation(project(":system-tests:system-test-fixtures"))
2931
testImplementation(libs.testcontainers.junit)
3032
testImplementation(libs.testcontainers.vault)
3133
testImplementation(libs.testcontainers.postgres)

0 commit comments

Comments
 (0)