1313import org .testng .annotations .Test ;
1414
1515import java .text .SimpleDateFormat ;
16- import java .util .Calendar ;
17- import java .util .Collections ;
18- import java .util .Date ;
16+ import java .util .*;
1917
2018import static org .testng .Assert .assertEquals ;
2119import 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