Skip to content

Commit f5dd477

Browse files
fix(test): adapt tests to new Runtime model in EDC (#204)
* fix(test): adapt tests to new runtime model * DEPENDENCIES * DEPENDENCIES * trigger ci * DEPENDENCIES
1 parent f2f8c42 commit f5dd477

File tree

6 files changed

+103
-76
lines changed

6 files changed

+103
-76
lines changed

DEPENDENCIES

+45-67
Large diffs are not rendered by default.

extensions/data-plane-selector/data-plane-instance-store-cosmos/build.gradle.kts

+3
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ dependencies {
1010

1111
testImplementation(libs.edc.sql.core)
1212
testImplementation(libs.edc.sql.dataplane.instancestore)
13+
testImplementation(libs.edc.junit)
14+
testImplementation(testFixtures(libs.edc.sql.lease))
15+
testImplementation(testFixtures(libs.edc.sql.core))
1316
testImplementation(testFixtures(libs.edc.dpf.selector.spi))
1417
testImplementation(testFixtures(project(":extensions:common:azure:azure-test")))
1518
}

extensions/data-plane-selector/data-plane-instance-store-cosmos/src/test/java/org/eclipse/edc/connector/dataplane/selector/store/cosmos/CosmosDataPlaneInstanceStoreTest.java

+33-3
Original file line numberDiff line numberDiff line change
@@ -25,21 +25,29 @@
2525
import org.eclipse.edc.json.JacksonTypeManager;
2626
import org.eclipse.edc.policy.model.PolicyRegistrationTypes;
2727
import org.eclipse.edc.sql.QueryExecutor;
28+
import org.eclipse.edc.sql.lease.testfixtures.LeaseUtil;
2829
import org.eclipse.edc.transaction.datasource.spi.DataSourceRegistry;
2930
import org.eclipse.edc.transaction.spi.TransactionContext;
3031
import org.junit.jupiter.api.AfterAll;
3132
import org.junit.jupiter.api.BeforeAll;
3233
import org.junit.jupiter.api.BeforeEach;
3334
import org.junit.jupiter.api.extension.ExtendWith;
3435

36+
import java.sql.SQLException;
37+
import java.time.Clock;
38+
import java.time.Duration;
39+
import javax.sql.DataSource;
40+
3541
import static org.eclipse.edc.azure.testfixtures.CosmosPostgresTestExtension.DEFAULT_DATASOURCE_NAME;
3642
import static org.eclipse.edc.junit.testfixtures.TestUtils.getResourceFileContentAsString;
3743

3844
@ParallelPostgresCosmosTest
3945
@ExtendWith(CosmosPostgresTestExtension.class)
4046
public class CosmosDataPlaneInstanceStoreTest extends DataPlaneInstanceStoreTestBase {
4147
private static final DataPlaneInstanceStatements STATEMENTS = new PostgresDataPlaneInstanceStatements();
42-
SqlDataPlaneInstanceStore store;
48+
private final DataPlaneInstanceStatements statements = new PostgresDataPlaneInstanceStatements();
49+
private SqlDataPlaneInstanceStore store;
50+
private LeaseUtil leaseUtil;
4351

4452
@BeforeAll
4553
static void createDatabase(CosmosPostgresTestExtension.SqlHelper helper) {
@@ -52,13 +60,22 @@ static void dropDatabase(CosmosPostgresTestExtension.SqlHelper helper) {
5260
}
5361

5462
@BeforeEach
55-
void setUp(DataSourceRegistry reg, TransactionContext transactionContext, QueryExecutor queryExecutor, CosmosPostgresTestExtension.SqlHelper helper) {
63+
void setUp(DataSourceRegistry reg, DataSource dataSource, TransactionContext transactionContext, QueryExecutor queryExecutor, CosmosPostgresTestExtension.SqlHelper helper) {
64+
65+
var clock = Clock.systemUTC();
5666

5767
var typeManager = new JacksonTypeManager();
5868
typeManager.registerTypes(DataPlaneInstance.class);
5969
typeManager.registerTypes(PolicyRegistrationTypes.TYPES.toArray(Class<?>[]::new));
70+
leaseUtil = new LeaseUtil(transactionContext, () -> {
71+
try {
72+
return dataSource.getConnection();
73+
} catch (SQLException e) {
74+
throw new RuntimeException(e);
75+
}
76+
}, statements, clock);
6077

61-
store = new SqlDataPlaneInstanceStore(reg, DEFAULT_DATASOURCE_NAME, transactionContext, STATEMENTS, typeManager.getMapper(), queryExecutor);
78+
store = new SqlDataPlaneInstanceStore(reg, DEFAULT_DATASOURCE_NAME, transactionContext, STATEMENTS, typeManager.getMapper(), queryExecutor, clock, CONNECTOR_NAME);
6279
helper.truncateTable(STATEMENTS.getDataPlaneInstanceTable());
6380
}
6481

@@ -68,5 +85,18 @@ protected DataPlaneInstanceStore getStore() {
6885
return store;
6986
}
7087

88+
@Override
89+
protected void leaseEntity(String entityId, String owner, Duration duration) {
90+
leaseUtil.leaseEntity(entityId, owner, duration);
91+
}
7192

93+
@Override
94+
protected boolean isLeasedBy(String entityId, String owner) {
95+
return leaseUtil.isLeased(entityId, owner);
96+
}
97+
98+
@Override
99+
protected Duration getTestTimeout() {
100+
return Duration.ofSeconds(2);
101+
}
72102
}
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
1+
CREATE TABLE IF NOT EXISTS edc_lease
2+
(
3+
leased_by VARCHAR NOT NULL,
4+
leased_at BIGINT,
5+
lease_duration INTEGER NOT NULL,
6+
lease_id VARCHAR NOT NULL
7+
CONSTRAINT lease_pk
8+
PRIMARY KEY
9+
);
10+
11+
112
CREATE TABLE IF NOT EXISTS edc_data_plane_instance
213
(
3-
id VARCHAR NOT NULL PRIMARY KEY,
4-
data JSON
14+
id VARCHAR NOT NULL PRIMARY KEY,
15+
data JSON,
16+
lease_id VARCHAR
17+
CONSTRAINT data_plane_instance_lease_id_fk
18+
REFERENCES edc_lease
19+
ON DELETE SET NULL
520
);

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

+3-2
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.eclipse.edc.connector.dataplane.spi.store.DataPlaneStore;
3030
import org.eclipse.edc.json.JacksonTypeManager;
3131
import org.eclipse.edc.junit.extensions.EdcExtension;
32+
import org.eclipse.edc.junit.extensions.EmbeddedRuntime;
3233
import org.eclipse.edc.junit.testfixtures.TestUtils;
3334
import org.eclipse.edc.spi.types.TypeManager;
3435
import org.eclipse.edc.spi.types.domain.DataAddress;
@@ -98,7 +99,7 @@ static void afterAll() {
9899

99100
@Test
100101
void transfer_success(
101-
EdcExtension edc,
102+
EmbeddedRuntime edc,
102103
AzureResourceManager azure,
103104
DataPlaneManager dataPlaneManager,
104105
DataPlaneStore store) {
@@ -184,7 +185,7 @@ private static class Account {
184185
private final BlobServiceClient client;
185186
private final String containerName = "test-container-" + UUID.randomUUID();
186187

187-
Account(AzureResourceManager azure, EdcExtension edc, String setting) {
188+
Account(AzureResourceManager azure, EmbeddedRuntime edc, String setting) {
188189
String accountId = Objects.requireNonNull(edc.getContext().getConfig().getString(setting), setting);
189190
var account = azure.storageAccounts().getById(accountId);
190191
name = account.name();

system-tests/azure-blob-transfer-tests/src/test/java/org/eclipse/edc/test/system/blob/BlobTransferIntegrationTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,8 @@ void transferBlob_success(String assetName, String[] blobsToTransfer) {
128128
providerClient.createContractDefinition(assetId, UUID.randomUUID().toString(), policyId, policyId);
129129

130130
// Write Key to vault
131-
consumer.getContext().getService(Vault.class).storeSecret(format("%s-key1", CONSUMER_STORAGE_ACCOUNT_NAME), CONSUMER_STORAGE_ACCOUNT_KEY);
132-
provider.getContext().getService(Vault.class).storeSecret(format("%s-key1", PROVIDER_STORAGE_ACCOUNT_NAME), PROVIDER_STORAGE_ACCOUNT_KEY);
131+
consumer.getService(Vault.class).storeSecret(format("%s-key1", CONSUMER_STORAGE_ACCOUNT_NAME), CONSUMER_STORAGE_ACCOUNT_KEY);
132+
provider.getService(Vault.class).storeSecret(format("%s-key1", PROVIDER_STORAGE_ACCOUNT_NAME), PROVIDER_STORAGE_ACCOUNT_KEY);
133133

134134
var transferProcessId = consumerClient.requestAssetAndTransferToBlob(providerClient, assetId, CONSUMER_STORAGE_ACCOUNT_NAME);
135135
await().pollInterval(POLL_INTERVAL).atMost(TIMEOUT).untilAsserted(() -> {

0 commit comments

Comments
 (0)