Skip to content

Commit 9c1e9a6

Browse files
authored
ci: fix ci (#309)
1 parent 3175ccb commit 9c1e9a6

File tree

7 files changed

+138
-95
lines changed

7 files changed

+138
-95
lines changed

extensions/common/azure/azure-test/src/testFixtures/java/org/eclipse/edc/azure/testfixtures/AbstractAzureBlobTest.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@
1717
import com.azure.storage.blob.BlobServiceClient;
1818
import org.junit.jupiter.api.AfterEach;
1919
import org.junit.jupiter.api.BeforeEach;
20-
import org.testcontainers.containers.FixedHostPortGenericContainer;
21-
import org.testcontainers.containers.GenericContainer;
22-
import org.testcontainers.junit.jupiter.Container;
2320

2421
import java.util.ArrayList;
2522
import java.util.List;
@@ -32,16 +29,11 @@
3229

3330
public abstract class AbstractAzureBlobTest {
3431

35-
3632
protected static final String PROVIDER_STORAGE_ACCOUNT_NAME = "account1";
3733
protected static final String PROVIDER_STORAGE_ACCOUNT_KEY = "key1";
3834
protected static final String CONSUMER_STORAGE_ACCOUNT_NAME = "account2";
3935
protected static final String CONSUMER_STORAGE_ACCOUNT_KEY = "key2";
4036
protected static final int AZURITE_PORT = getFreePort();
41-
@Container
42-
protected static final GenericContainer<?> AZURITE_CONTAINER = new FixedHostPortGenericContainer<>("mcr.microsoft.com/azure-storage/azurite")
43-
.withFixedExposedPort(AZURITE_PORT, 10000)
44-
.withEnv("AZURITE_ACCOUNTS", "%s:%s;%s:%s".formatted(PROVIDER_STORAGE_ACCOUNT_NAME, PROVIDER_STORAGE_ACCOUNT_KEY, CONSUMER_STORAGE_ACCOUNT_NAME, CONSUMER_STORAGE_ACCOUNT_KEY));
4537
protected BlobServiceClient providerBlobServiceClient;
4638
protected BlobServiceClient consumerBlobServiceClient;
4739
protected String providerContainerName;
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/*
2+
* Copyright (c) 2025 Cofinity-X
3+
*
4+
* This program and the accompanying materials are made available under the
5+
* terms of the Apache License, Version 2.0 which is available at
6+
* https://www.apache.org/licenses/LICENSE-2.0
7+
*
8+
* SPDX-License-Identifier: Apache-2.0
9+
*
10+
* Contributors:
11+
* Cofinity-X - initial API and implementation
12+
*
13+
*/
14+
15+
package org.eclipse.edc.azure.testfixtures;
16+
17+
import org.junit.jupiter.api.extension.AfterAllCallback;
18+
import org.junit.jupiter.api.extension.BeforeAllCallback;
19+
import org.junit.jupiter.api.extension.ExtensionContext;
20+
import org.testcontainers.containers.GenericContainer;
21+
22+
import java.util.List;
23+
24+
import static java.util.Arrays.stream;
25+
import static java.util.stream.Collectors.joining;
26+
27+
public class AzuriteExtension implements BeforeAllCallback, AfterAllCallback {
28+
29+
private static final String IMAGE_NAME = "mcr.microsoft.com/azure-storage/azurite:3.33.0";
30+
31+
private final AzuriteContainer azuriteContainer;
32+
33+
public AzuriteExtension(int azuriteHostPort, Account... accounts) {
34+
azuriteContainer = new AzuriteContainer(azuriteHostPort, accounts);
35+
}
36+
37+
@Override
38+
public void beforeAll(ExtensionContext context) {
39+
azuriteContainer.start();
40+
}
41+
42+
@Override
43+
public void afterAll(ExtensionContext context) {
44+
azuriteContainer.stop();
45+
}
46+
47+
public record Account(String name, String key) { }
48+
49+
private static class AzuriteContainer extends GenericContainer<AzuriteContainer> {
50+
51+
AzuriteContainer(int azuriteHostPort, Account... accounts) {
52+
super(IMAGE_NAME);
53+
addEnv("AZURITE_ACCOUNTS", stream(accounts).map(it -> "%s:%s".formatted(it.name(), it.key())).collect(joining(";")));
54+
setPortBindings(List.of("%d:%d".formatted(azuriteHostPort, 10_000)));
55+
}
56+
57+
}
58+
}

extensions/data-plane/data-plane-azure-data-factory/src/test/java/org/eclipse/edc/connector/dataplane/azure/datafactory/AzureDataFactoryCopyIntegrationTest.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
import org.eclipse.edc.connector.dataplane.spi.manager.DataPlaneManager;
2929
import org.eclipse.edc.connector.dataplane.spi.store.DataPlaneStore;
3030
import org.eclipse.edc.json.JacksonTypeManager;
31-
import org.eclipse.edc.junit.extensions.EdcExtension;
3231
import org.eclipse.edc.junit.extensions.EmbeddedRuntime;
32+
import org.eclipse.edc.junit.extensions.RuntimePerMethodExtension;
3333
import org.eclipse.edc.junit.testfixtures.TestUtils;
3434
import org.eclipse.edc.spi.types.TypeManager;
3535
import org.eclipse.edc.spi.types.domain.DataAddress;
@@ -66,7 +66,7 @@
6666
* accounts using Azure Data Factory.
6767
*/
6868
@AzureDataFactoryIntegrationTest
69-
@ExtendWith(EdcExtension.class)
69+
@ExtendWith(RuntimePerMethodExtension.class)
7070
class AzureDataFactoryCopyIntegrationTest {
7171

7272
private static final String RUNTIME_SETTINGS_PATH = "resources/azure/testing/runtime_settings.properties";
@@ -103,7 +103,6 @@ void transfer_success(
103103
AzureResourceManager azure,
104104
DataPlaneManager dataPlaneManager,
105105
DataPlaneStore store) {
106-
// Arrange
107106
var providerStorage = new Account(azure, edc, PROVIDER_STORAGE_RESOURCE_ID);
108107
var consumerStorage = new Account(azure, edc, CONSUMER_STORAGE_RESOURCE_ID);
109108
var randomBytes = new byte[1024];
@@ -144,10 +143,8 @@ void transfer_success(
144143
.getById(Objects.requireNonNull(edc.getContext().getConfig().getString(KEY_VAULT_RESOURCE_ID), KEY_VAULT_RESOURCE_ID));
145144
setSecret(consumerStorage, vault, destSecretKeyName);
146145

147-
// Act
148146
dataPlaneManager.start(request);
149147

150-
// Assert
151148
var destinationBlob = consumerStorage.client
152149
.getBlobContainerClient(consumerStorage.containerName)
153150
.getBlobClient(blobName);

extensions/data-plane/data-plane-azure-storage/src/test/java/org/eclipse/edc/connector/dataplane/azure/storage/AzureDataPlaneCopyIntegrationTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.eclipse.edc.azure.blob.api.BlobStoreApi;
2525
import org.eclipse.edc.azure.blob.api.BlobStoreApiImpl;
2626
import org.eclipse.edc.azure.testfixtures.AbstractAzureBlobTest;
27+
import org.eclipse.edc.azure.testfixtures.AzuriteExtension;
2728
import org.eclipse.edc.azure.testfixtures.TestFunctions;
2829
import org.eclipse.edc.azure.testfixtures.annotations.AzureStorageIntegrationTest;
2930
import org.eclipse.edc.connector.dataplane.azure.storage.metadata.BlobMetadataProviderImpl;
@@ -40,6 +41,7 @@
4041
import org.junit.jupiter.api.BeforeEach;
4142
import org.junit.jupiter.api.Disabled;
4243
import org.junit.jupiter.api.Test;
44+
import org.junit.jupiter.api.extension.RegisterExtension;
4345
import org.testcontainers.junit.jupiter.Testcontainers;
4446

4547
import java.time.OffsetDateTime;
@@ -86,6 +88,12 @@ class AzureDataPlaneCopyIntegrationTest extends AbstractAzureBlobTest {
8688
private final BlobStoreApi account1Api = new BlobStoreApiImpl(vault, blobStoreCoreExtensionProviderConfig);
8789
private final BlobStoreApi account2Api = new BlobStoreApiImpl(vault, blobStoreCoreExtensionConsumerConfig);
8890

91+
@RegisterExtension
92+
private static AzuriteExtension azurite = new AzuriteExtension(AZURITE_PORT,
93+
new AzuriteExtension.Account(PROVIDER_STORAGE_ACCOUNT_NAME, PROVIDER_STORAGE_ACCOUNT_KEY),
94+
new AzuriteExtension.Account(CONSUMER_STORAGE_ACCOUNT_NAME, CONSUMER_STORAGE_ACCOUNT_KEY)
95+
);
96+
8997
@BeforeEach
9098
void setUp() {
9199
createContainer(consumerBlobServiceClient, sinkContainerName);

system-tests/azure-blob-transfer-fixtures/build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,9 @@ plugins {
2020
dependencies {
2121
testFixturesApi(project(":extensions:common:azure:azure-blob-core"))
2222
testFixturesApi(libs.edc.jsonld)
23-
testFixturesApi(testFixtures(libs.edc.management.api.test.fixtures))
2423
testFixturesApi(libs.edc.lib.util)
24+
testFixturesApi(libs.edc.spi.core)
25+
testFixturesApi(testFixtures(libs.edc.management.api.test.fixtures))
2526
testFixturesImplementation(libs.restAssured)
2627
testFixturesImplementation(libs.azure.storageblob)
2728
testFixturesImplementation(libs.edc.junit)

system-tests/azure-blob-transfer-fixtures/src/testFixtures/java/org/eclipse/edc/test/system/blob/BlobTransferParticipant.java

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,46 @@
1818
import io.restassured.http.ContentType;
1919
import org.eclipse.edc.azure.blob.AzureBlobStoreSchema;
2020
import org.eclipse.edc.connector.controlplane.test.system.utils.Participant;
21+
import org.eclipse.edc.spi.system.configuration.Config;
22+
import org.eclipse.edc.spi.system.configuration.ConfigFactory;
2123

2224
import java.util.Map;
2325
import java.util.UUID;
2426

25-
import static io.restassured.RestAssured.given;
2627
import static jakarta.json.Json.createObjectBuilder;
2728
import static java.lang.String.format;
29+
import static java.lang.String.valueOf;
30+
import static org.eclipse.edc.boot.BootServicesExtension.PARTICIPANT_ID;
31+
import static org.eclipse.edc.util.io.Ports.getFreePort;
2832

2933
public class BlobTransferParticipant extends Participant {
3034

35+
private final String containerName = UUID.randomUUID().toString();
36+
37+
public Config createConfig(int blobStoragePort) {
38+
return ConfigFactory.fromMap(Map.ofEntries(
39+
Map.entry("edc.blobstore.endpoint.template", "http://127.0.0.1:" + blobStoragePort + "/%s"),
40+
Map.entry("edc.test.asset.container.name", containerName),
41+
Map.entry("web.http.port", String.valueOf(getFreePort())),
42+
Map.entry("web.http.path", "/"),
43+
Map.entry("web.http.management.port", valueOf(controlPlaneManagement.get().getPort())),
44+
Map.entry("web.http.management.path", controlPlaneManagement.get().getPath()),
45+
Map.entry("web.http.protocol.port", valueOf(controlPlaneProtocol.get().getPort())),
46+
Map.entry("web.http.protocol.path", controlPlaneProtocol.get().getPath()),
47+
Map.entry("web.http.control.port", valueOf(getFreePort())),
48+
Map.entry("web.http.control.path", "/control"),
49+
Map.entry(PARTICIPANT_ID, id),
50+
Map.entry("edc.dsp.callback.address", controlPlaneProtocol.get().toString()),
51+
Map.entry("edc.transfer.proxy.token.verifier.publickey.alias", "test-alias"),
52+
Map.entry("edc.transfer.proxy.token.signer.privatekey.alias", "test-private-alias"),
53+
Map.entry("edc.jsonld.http.enabled", Boolean.TRUE.toString())
54+
));
55+
}
56+
57+
public String getContainerName() {
58+
return containerName;
59+
}
60+
3161
public String createBlobAsset(String accountName, String containerName, String blobName) {
3262
var assetId = UUID.randomUUID().toString();
3363

@@ -69,11 +99,10 @@ public String createBlobInFolderAsset(String accountName, String containerName,
6999
}
70100

71101
public Map<String, Object> getDataDestination(String transferProcessId) {
72-
return given()
73-
.baseUri(managementEndpoint.getUrl().toString())
102+
return baseManagementRequest()
74103
.contentType(ContentType.JSON)
75104
.when()
76-
.get("/v2/transferprocesses/{id}", transferProcessId)
105+
.get("/v3/transferprocesses/{id}", transferProcessId)
77106
.then()
78107
.statusCode(200)
79108
.extract().jsonPath().get("'dataDestination'");
@@ -104,10 +133,5 @@ public static Builder newInstance() {
104133
return new Builder();
105134
}
106135

107-
@Override
108-
public BlobTransferParticipant build() {
109-
super.build();
110-
return participant;
111-
}
112136
}
113137
}

0 commit comments

Comments
 (0)