From f2ee427c40ac6da9106dbccc850b772bd4e4876a Mon Sep 17 00:00:00 2001
From: Yash Dholakia <ysdholak@amazon.com>
Date: Tue, 11 Jul 2023 10:56:41 -0700
Subject: [PATCH] Create a seperate subscription for test partition

---
 .../TestNotificationsEndpoint.java            | 51 ++++++++++++++++---
 1 file changed, 45 insertions(+), 6 deletions(-)

diff --git a/testing/notification-test-aws/src/test/java/org/opengroup/osdu/notification/subscriptions/TestNotificationsEndpoint.java b/testing/notification-test-aws/src/test/java/org/opengroup/osdu/notification/subscriptions/TestNotificationsEndpoint.java
index d3af80e13..377cedff0 100644
--- a/testing/notification-test-aws/src/test/java/org/opengroup/osdu/notification/subscriptions/TestNotificationsEndpoint.java
+++ b/testing/notification-test-aws/src/test/java/org/opengroup/osdu/notification/subscriptions/TestNotificationsEndpoint.java
@@ -23,6 +23,8 @@ import static org.junit.Assert.assertEquals;
 
 public class TestNotificationsEndpoint extends TestBase {
 
+    private String subscriptionId_TestPartition;
+
     private String subscriptionId;
     private ISubscriptionService awssubscriptionService;
     private TestUtils testUtils;
@@ -46,7 +48,7 @@ public class TestNotificationsEndpoint extends TestBase {
     }
 
     @Before
-    public void setup() throws Exception {
+    public void setup() {
         this.testUtils = new AwsTestUtils();
     }
 
@@ -58,6 +60,43 @@ public class TestNotificationsEndpoint extends TestBase {
         this.testUtils = null;
     }
 
+    private void createResourceForTestParition() throws Exception {
+        Map<String, String> headers = new HashMap<>();
+        headers.put(DpsHeaders.DATA_PARTITION_ID, TestUtils.getOsduTenant());
+        headers.put(DpsHeaders.AUTHORIZATION, testUtils.getOpsToken());
+        //hardcoding user here for 200 response tests. This is just initializing the subscription creation
+        headers.put("x-user-id", AwsConfig.getAWSCognitoUser());
+        DpsHeaders dpsHeaders = DpsHeaders.createFromMap(headers);
+        awssubscriptionService = awsfactory.create(dpsHeaders);
+
+        Map<String,String> h = dpsHeaders.getHeaders();
+        System.out.println(h);
+
+
+        //Create a new subscription to pub/sub
+        Subscription subscription = new Subscription();
+        subscription.setName("Subscription-test-for-notification");
+        subscription.setDescription("Subscription with test Partition for fetching notifications");
+        subscription.setTopic(Config.Instance().Topic);
+        //This seems to be a bug. Don't need to add the string
+        //subscription.setPushEndpoint(Config.Instance().HMACPushUrl + "hmac-integration-test");
+        subscription.setPushEndpoint(Config.Instance().HMACPushUrl);
+        HmacSecret secret = new HmacSecret();
+        secret.setValue(Config.Instance().hmacSecretValue);
+
+        subscription.setSecret(secret);
+        try {
+            Subscription subscriptionCreated = awssubscriptionService.create(subscription);
+            System.out.println("Subscription created successfully");
+            String notificationId = subscriptionCreated.getNotificationId();
+            subscriptionId_TestPartition = subscriptionCreated.getId();
+            Config.Instance().NotificationId = notificationId;
+        }catch (SubscriptionException e){
+            System.out.println("Subscription exception inner response : " + e.getHttpResponse());
+            throw e;
+        }
+    }
+
     private void createResource() throws Exception {
         Map<String, String> headers = new HashMap<>();
         headers.put(DpsHeaders.DATA_PARTITION_ID, TestUtils.getOsduTenant());
@@ -74,7 +113,7 @@ public class TestNotificationsEndpoint extends TestBase {
         //Create a new subscription to pub/sub
         Subscription subscription = new Subscription();
         subscription.setName("Subscription-test-for-notification");
-        subscription.setDescription("Subscription test for fetching notifications");
+        subscription.setDescription("Subscription for fetching notifications");
         subscription.setTopic(Config.Instance().Topic);
         //This seems to be a bug. Don't need to add the string
         //subscription.setPushEndpoint(Config.Instance().HMACPushUrl + "hmac-integration-test");
@@ -111,7 +150,7 @@ public class TestNotificationsEndpoint extends TestBase {
     public void testVerifyNotificationReceivedWhenDataPartitionIdIsDifferent() throws Exception {
         try {
             LegalTagUtils.create(LEGAL_TAG_TEST, testUtils.getOpsToken(), true);
-            createResource();
+            createResourceForTestParition();
             final String correlationId = UUID.randomUUID().toString();
             ClientResponse response = createStorageRecordForTestPartition(correlationId);
             assertEquals(201, response.getStatus());
@@ -125,9 +164,9 @@ public class TestNotificationsEndpoint extends TestBase {
             int exitValue = process.exitValue();
             assertEquals(exitValue, 1);
         } catch (Exception e) {
-            System.out.println("Error while verifying notification service" + Arrays.toString(e.getStackTrace()));
+            System.out.println("Error while verifying notification service. Error = " + e.getMessage() + " Stack Trace = " + Arrays.toString(e.getStackTrace()));
         } finally {
-            awssubscriptionService.delete(subscriptionId);
+            awssubscriptionService.delete(subscriptionId_TestPartition);
         }
     }
 
@@ -149,7 +188,7 @@ public class TestNotificationsEndpoint extends TestBase {
             int exitValue = process.exitValue();
             assertEquals(exitValue, 0);
         } catch (Exception e) {
-            System.out.println("Error while verifying notification service" + Arrays.toString(e.getStackTrace()));
+            System.out.println("Error while verifying notification service. Error = " + e.getMessage() + " Stack Trace = " + Arrays.toString(e.getStackTrace()));
         } finally {
             awssubscriptionService.delete(subscriptionId);
         }
-- 
GitLab