Skip to content

Commit 3875a4e

Browse files
authored
Merge pull request #34 from IBM/shacharn-2353-e2e-conflict
Add Cleanup to Tests and enable parallel test runs
2 parents 112dcb9 + 43e94df commit 3875a4e

File tree

1 file changed

+71
-6
lines changed

1 file changed

+71
-6
lines changed

modules/secrets-manager/src/test/java/com/ibm/cloud/secrets_manager_sdk/secrets_manager/v1/SecretsManagerIntegrationTest.java

Lines changed: 71 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,7 @@
1313
import org.testng.annotations.Test;
1414

1515
import java.text.SimpleDateFormat;
16-
import java.util.Calendar;
17-
import java.util.Collections;
18-
import java.util.Date;
16+
import java.util.*;
1917

2018
import static org.testng.Assert.assertEquals;
2119
import static org.testng.Assert.assertNotNull;
@@ -30,6 +28,8 @@ public class SecretsManagerIntegrationTest extends PowerMockTestCase {
3028
protected SecretsManager secretsManager;
3129
protected IamAuthenticator iamAuthenticator;
3230

31+
private final String TESTCASEPREFIX = "Java-SDK_";
32+
3333
@BeforeClass
3434
public void initTest() {
3535
iamAuthenticator = new IamAuthenticator.Builder()
@@ -38,6 +38,10 @@ public void initTest() {
3838
.build();
3939
secretsManager = new SecretsManager("Secrets Manager integration test", iamAuthenticator);
4040
secretsManager.setServiceUrl(System.getenv("SERVICE_URL"));
41+
42+
clearSecrets(secretsManager, TESTCASEPREFIX);
43+
clearSecretGroups(secretsManager, TESTCASEPREFIX);
44+
clearConfigs(secretsManager, TESTCASEPREFIX);
4145
}
4246

4347
@Test
@@ -261,7 +265,7 @@ public void testSecretRotationPolicy() {
261265

262266
@Test
263267
public void testCreateSecretConflict() {
264-
String secretName = "conflict_integration_test_secret";
268+
String secretName = generateName();
265269
// create arbitrary secret
266270
CollectionMetadata collectionMetadata = new CollectionMetadata.Builder()
267271
.collectionType(CollectionMetadata.CollectionType.APPLICATION_VND_IBM_SECRETS_MANAGER_SECRET_JSON)
@@ -287,7 +291,7 @@ public void testCreateSecretConflict() {
287291
createResp = secretsManager.createSecret(createSecretOptions).execute();
288292
} catch (ConflictException e) {
289293
assertEquals(e.getStatusCode(), 409);
290-
assertEquals(e.getMessage(), "A secret with the same name already exists: conflict_integration_test_secret");
294+
assertEquals(e.getMessage(), "A secret with the same name already exists: " + secretName);
291295
}
292296
// delete arbitrary secret
293297
DeleteSecretOptions deleteSecretOptions = new DeleteSecretOptions.Builder()
@@ -552,7 +556,68 @@ private Date generateExpirationDate() {
552556
}
553557

554558
private String generateName() {
555-
return "test-integration-" + System.currentTimeMillis();
559+
return TESTCASEPREFIX + "test-integration-" + System.currentTimeMillis();
560+
}
561+
562+
private void clearSecrets(SecretsManager secretsManager, String prefix) {
563+
Response<ListSecrets> response = secretsManager.listAllSecrets().execute();
564+
List<SecretResource> secrets = response.getResult().getResources();
565+
566+
for (SecretResource secret : secrets) {
567+
if (prefix.isEmpty() || secret.name().startsWith(prefix)) {
568+
DeleteSecretOptions deleteSecretOptions = new DeleteSecretOptions.Builder()
569+
.secretType(secret.secretType())
570+
.id(secret.id())
571+
.build();
572+
secretsManager.deleteSecret(deleteSecretOptions).execute();
573+
}
574+
}
575+
}
576+
577+
private void clearSecretGroups(SecretsManager secretsManager, String prefix) {
578+
Response<SecretGroupDef> response = secretsManager.listSecretGroups().execute();
579+
List<SecretGroupResource> secretGroups = response.getResult().resources();
580+
581+
for (SecretGroupResource secretGroup : secretGroups) {
582+
if (prefix.isEmpty() || secretGroup.getName().startsWith(prefix)) {
583+
DeleteSecretGroupOptions deleteSecretGroupOptions = new DeleteSecretGroupOptions.Builder()
584+
.id(secretGroup.getId())
585+
.build();
586+
secretsManager.deleteSecretGroup(deleteSecretGroupOptions).execute();
587+
}
588+
}
556589
}
557590

591+
private void clearConfigs(SecretsManager secretsManager, String prefix) {
592+
GetConfigOptions getConfigElementsOptions = new GetConfigOptions.Builder().secretType(GetConfigOptions.SecretType.PUBLIC_CERT).build();
593+
594+
Response<GetConfig> response = secretsManager.getConfig(getConfigElementsOptions).execute();
595+
List<GetConfigResourcesItem> listConfigs = response.getResult().getResources();
596+
if (listConfigs.size() < 1)
597+
return;
598+
List<ConfigElementMetadata> certConfigs = listConfigs.get(0).getCertificateAuthorities();
599+
List<ConfigElementMetadata> dnsConfigs = listConfigs.get(0).getDnsProviders();
600+
601+
for (ConfigElementMetadata config : certConfigs) {
602+
if (prefix.isEmpty() || config.getName().startsWith(prefix)) {
603+
DeleteConfigElementOptions deleteConfigElementOptions = new DeleteConfigElementOptions.Builder()
604+
.secretType(GetConfigOptions.SecretType.PUBLIC_CERT)
605+
.configElement(DeleteConfigElementOptions.ConfigElement.CERTIFICATE_AUTHORITIES)
606+
.configName(config.getName())
607+
.build();
608+
secretsManager.deleteConfigElement(deleteConfigElementOptions).execute();
609+
}
610+
}
611+
612+
for (ConfigElementMetadata config : dnsConfigs) {
613+
if (prefix.isEmpty() || config.getName().startsWith(prefix)) {
614+
DeleteConfigElementOptions deleteConfigElementOptions = new DeleteConfigElementOptions.Builder()
615+
.secretType(GetConfigOptions.SecretType.PUBLIC_CERT)
616+
.configElement(DeleteConfigElementOptions.ConfigElement.DNS_PROVIDERS)
617+
.configName(config.getName())
618+
.build();
619+
secretsManager.deleteConfigElement(deleteConfigElementOptions).execute();
620+
}
621+
}
622+
}
558623
}

0 commit comments

Comments
 (0)