From 8a6240f240a87306fe349bfbf421075484304dd3 Mon Sep 17 00:00:00 2001 From: BharathwajShankar Date: Mon, 27 Feb 2023 14:34:09 +0530 Subject: [PATCH 1/5] LR-306 - Test Automation for CSP --- core/platform-common/pom.xml | 2 +- .../main/java/org/sunbird/keys/JsonKey.java | 2 + .../org/sunbird/util/CloudStorageUtil.java | 8 +-- .../sunbird/util/CloudStorageUtilTest.java | 60 ++++++++++++++----- 4 files changed, 52 insertions(+), 20 deletions(-) diff --git a/core/platform-common/pom.xml b/core/platform-common/pom.xml index 92ff7f9491..0c6bcab3fe 100644 --- a/core/platform-common/pom.xml +++ b/core/platform-common/pom.xml @@ -114,7 +114,7 @@ org.sunbird cloud-store-sdk - 1.4.3 + 1.4.4 com.sun.jersey diff --git a/core/platform-common/src/main/java/org/sunbird/keys/JsonKey.java b/core/platform-common/src/main/java/org/sunbird/keys/JsonKey.java index fc58f89364..dd19dee7ee 100644 --- a/core/platform-common/src/main/java/org/sunbird/keys/JsonKey.java +++ b/core/platform-common/src/main/java/org/sunbird/keys/JsonKey.java @@ -635,6 +635,8 @@ public final class JsonKey { public static final String EXTENDED_PROFILE_SCHEMA_CONFIG = "extendedProfileSchemaConfig"; public static final String MANDATORY_FIELDS_EXISTS = "mandatoryFieldsExists"; public static final String OSID = "osid"; + public static final String AWS_STR = "aws"; + public static final String GCP="gcloud"; public static final String DISABLE_MULTIPLE_ORG_ROLE = "sunbird_disable_multiple_org_role"; public static final String PASSWORD_RESET_LOGIN_PAGE_URL = "sunbird_password_reset_login_page_url"; diff --git a/core/platform-common/src/main/java/org/sunbird/util/CloudStorageUtil.java b/core/platform-common/src/main/java/org/sunbird/util/CloudStorageUtil.java index dceb38ff75..c930eeccaf 100644 --- a/core/platform-common/src/main/java/org/sunbird/util/CloudStorageUtil.java +++ b/core/platform-common/src/main/java/org/sunbird/util/CloudStorageUtil.java @@ -30,16 +30,16 @@ public static String upload( public static String getSignedUrl( String storageType, String container, String objectKey) { IStorageService storageService = getStorageService(storageType); - return getSignedUrl(storageService, container, objectKey); + return getSignedUrl(storageService, container, objectKey,storageType); } public static String getSignedUrl( IStorageService storageService, String container, - String objectKey) { + String objectKey,String cloudType) { int timeoutInSeconds = getTimeoutInSeconds(); - return storageService.getSignedURL( - container, objectKey, Some.apply(timeoutInSeconds), Some.apply("r")); + return storageService.getSignedURLV2( + container, objectKey, Some.apply(timeoutInSeconds), Some.apply("r"), Some.apply("application/pdf")); } private static IStorageService getStorageService(String storageType) { diff --git a/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java b/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java index 18fce8442e..f3819d1a34 100644 --- a/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java +++ b/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java @@ -6,16 +6,15 @@ import static org.powermock.api.mockito.PowerMockito.when; import org.junit.Assert; import org.junit.Before; -import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; -import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import org.sunbird.cloud.storage.BaseStorageService; import org.sunbird.cloud.storage.factory.StorageServiceFactory; +import org.sunbird.keys.JsonKey; import scala.Option; @RunWith(PowerMockRunner.class) @@ -30,14 +29,10 @@ public class CloudStorageUtilTest { private static final String SIGNED_URL = "singedUrl"; private static final String UPLOAD_URL = "uploadUrl"; + private static String PUT_SIGNED_URL = "gcpSignedUrl"; @Before public void initTest() { - PowerMockito.mockStatic(PropertiesCache.class); - PropertiesCache propertiesCache = mock(PropertiesCache.class); - when(PropertiesCache.getInstance()).thenReturn(propertiesCache); - PowerMockito.when(propertiesCache.getProperty(Mockito.anyString())).thenReturn("anyString"); - BaseStorageService service = mock(BaseStorageService.class); mockStatic(StorageServiceFactory.class); @@ -61,23 +56,58 @@ public void initTest() { Mockito.any(Option.class))) .thenReturn(SIGNED_URL); + when(service.getPutSignedURL( + Mockito.anyString(), + Mockito.anyString(), + Mockito.any(Option.class), + Mockito.any(Option.class), + Mockito.any(Option.class))) + .thenReturn(PUT_SIGNED_URL); + + when(service.getSignedURLV2( + Mockito.eq("azurecontainer"), + Mockito.anyString(), + Mockito.any(Option.class), + Mockito.any(Option.class), + Mockito.any(Option.class))) + .thenReturn(SIGNED_URL); + + when(service.getSignedURLV2( + Mockito.eq("gcpcontainer"), + Mockito.anyString(), + Mockito.any(Option.class), + Mockito.any(Option.class), + Mockito.any(Option.class))) + .thenReturn(PUT_SIGNED_URL); + + when(service.getSignedURLV2( + Mockito.eq("awscontainer"), + Mockito.anyString(), + Mockito.any(Option.class), + Mockito.any(Option.class), + Mockito.any(Option.class))) + .thenReturn(SIGNED_URL); + } catch (Exception e) { Assert.fail(e.getMessage()); } } @Test - // @Ignore - public void testUploadSuccess() { - String result = - CloudStorageUtil.upload("azure", "container", "key", "/file/path"); - assertTrue(UPLOAD_URL.equals(result)); + public void testGetSignedUrlAZURESuccess() { + String signedUrl = CloudStorageUtil.getSignedUrl("azure", "azurecontainer", "key"); + assertTrue(SIGNED_URL.equals(signedUrl)); + } + + @Test + public void testGetSignedUrlGCPSuccess() { + String signedUrl = CloudStorageUtil.getSignedUrl(JsonKey.GCP, "gcpcontainer", "key"); + assertTrue(PUT_SIGNED_URL.equals(signedUrl)); } @Test - @Ignore - public void testGetSignedUrlSuccess() { - String signedUrl = CloudStorageUtil.getSignedUrl("azure", "container", "key"); + public void testGetSignedUrlAWSSuccess() { + String signedUrl = CloudStorageUtil.getSignedUrl(JsonKey.AWS_STR, "awscontainer", "key"); assertTrue(SIGNED_URL.equals(signedUrl)); } } From dc9464e5e5a0ae5617c58482039b08ac91d65d67 Mon Sep 17 00:00:00 2001 From: BharathwajShankar Date: Mon, 27 Feb 2023 14:39:00 +0530 Subject: [PATCH 2/5] LR-306 - Test Automation for CSP --- .../test/java/org/sunbird/util/CloudStorageUtilTest.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java b/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java index f3819d1a34..084db8038d 100644 --- a/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java +++ b/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java @@ -94,9 +94,11 @@ public void initTest() { } @Test - public void testGetSignedUrlAZURESuccess() { - String signedUrl = CloudStorageUtil.getSignedUrl("azure", "azurecontainer", "key"); - assertTrue(SIGNED_URL.equals(signedUrl)); + // @Ignore + public void testUploadSuccess() { + String result = + CloudStorageUtil.upload("azure", "container", "key", "/file/path"); + assertTrue(UPLOAD_URL.equals(result)); } @Test From 27aea8961369dfddb47076fed7a1ce7036a18587 Mon Sep 17 00:00:00 2001 From: BharathwajShankar Date: Mon, 27 Feb 2023 14:41:54 +0530 Subject: [PATCH 3/5] LR-306 - Test Automation for CSP --- .../sunbird/util/CloudStorageUtilTest.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java b/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java index 084db8038d..278ed0049b 100644 --- a/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java +++ b/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java @@ -19,10 +19,10 @@ @RunWith(PowerMockRunner.class) @PowerMockIgnore({ - "javax.management.*", - "javax.net.ssl.*", - "javax.security.*", - "jdk.internal.reflect.*" + "javax.management.*", + "javax.net.ssl.*", + "javax.security.*", + "jdk.internal.reflect.*" }) @PrepareForTest({StorageServiceFactory.class, CloudStorageUtil.class, PropertiesCache.class}) public class CloudStorageUtilTest { @@ -47,14 +47,14 @@ public void initTest() { Mockito.any(Option.class), Mockito.any(Option.class), Mockito.any(Option.class))) - .thenReturn(UPLOAD_URL); + .thenReturn(UPLOAD_URL); when(service.getSignedURL( Mockito.anyString(), Mockito.anyString(), Mockito.any(Option.class), Mockito.any(Option.class))) - .thenReturn(SIGNED_URL); + .thenReturn(SIGNED_URL); when(service.getPutSignedURL( Mockito.anyString(), @@ -94,13 +94,18 @@ public void initTest() { } @Test - // @Ignore public void testUploadSuccess() { String result = - CloudStorageUtil.upload("azure", "container", "key", "/file/path"); + CloudStorageUtil.upload("azure", "container", "key", "/file/path"); assertTrue(UPLOAD_URL.equals(result)); } + @Test + public void testGetSignedUrlAZURESuccess() { + String signedUrl = CloudStorageUtil.getSignedUrl("azure", "azurecontainer", "key"); + assertTrue(SIGNED_URL.equals(signedUrl)); + } + @Test public void testGetSignedUrlGCPSuccess() { String signedUrl = CloudStorageUtil.getSignedUrl(JsonKey.GCP, "gcpcontainer", "key"); From 39ab24d782e08677a590a086ca50850b5834dc57 Mon Sep 17 00:00:00 2001 From: BharathwajShankar Date: Mon, 27 Feb 2023 15:08:22 +0530 Subject: [PATCH 4/5] LR-306 - Test Automation for CSP --- .../src/test/java/org/sunbird/util/CloudStorageUtilTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java b/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java index 278ed0049b..bebffe55dd 100644 --- a/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java +++ b/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java @@ -29,7 +29,7 @@ public class CloudStorageUtilTest { private static final String SIGNED_URL = "singedUrl"; private static final String UPLOAD_URL = "uploadUrl"; - private static String PUT_SIGNED_URL = "gcpSignedUrl"; + private static final String PUT_SIGNED_URL = "gcpSignedUrl"; @Before public void initTest() { From 8252b070de9e6ce49891878809d02c0bd62483da Mon Sep 17 00:00:00 2001 From: BharathwajShankar Date: Tue, 7 Mar 2023 13:05:44 +0530 Subject: [PATCH 5/5] LR-306 - hardcoded storage type and updates in telemetry version --- .../src/main/java/org/sunbird/keys/JsonKey.java | 2 -- .../src/main/resources/externalresource.properties | 2 +- .../src/test/java/org/sunbird/util/CloudStorageUtilTest.java | 4 ++-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/core/platform-common/src/main/java/org/sunbird/keys/JsonKey.java b/core/platform-common/src/main/java/org/sunbird/keys/JsonKey.java index dd19dee7ee..fc58f89364 100644 --- a/core/platform-common/src/main/java/org/sunbird/keys/JsonKey.java +++ b/core/platform-common/src/main/java/org/sunbird/keys/JsonKey.java @@ -635,8 +635,6 @@ public final class JsonKey { public static final String EXTENDED_PROFILE_SCHEMA_CONFIG = "extendedProfileSchemaConfig"; public static final String MANDATORY_FIELDS_EXISTS = "mandatoryFieldsExists"; public static final String OSID = "osid"; - public static final String AWS_STR = "aws"; - public static final String GCP="gcloud"; public static final String DISABLE_MULTIPLE_ORG_ROLE = "sunbird_disable_multiple_org_role"; public static final String PASSWORD_RESET_LOGIN_PAGE_URL = "sunbird_password_reset_login_page_url"; diff --git a/core/platform-common/src/main/resources/externalresource.properties b/core/platform-common/src/main/resources/externalresource.properties index 12df4613f2..097af1a741 100644 --- a/core/platform-common/src/main/resources/externalresource.properties +++ b/core/platform-common/src/main/resources/externalresource.properties @@ -36,7 +36,7 @@ sunbird_otp_allowed_attempt=2 #Telemetry producer related info telemetry_pdata_id=local.sunbird.learning.service telemetry_pdata_pid=learning-service -telemetry_pdata_ver=5.1.0 +telemetry_pdata_ver=5.2.0 #elastic search top n result count for telemetry searchTopN=5 ekstep.channel.update.api.url=/channel/v3/update diff --git a/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java b/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java index bebffe55dd..975a5299cc 100644 --- a/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java +++ b/core/platform-common/src/test/java/org/sunbird/util/CloudStorageUtilTest.java @@ -108,13 +108,13 @@ public void testGetSignedUrlAZURESuccess() { @Test public void testGetSignedUrlGCPSuccess() { - String signedUrl = CloudStorageUtil.getSignedUrl(JsonKey.GCP, "gcpcontainer", "key"); + String signedUrl = CloudStorageUtil.getSignedUrl("gcloud", "gcpcontainer", "key"); assertTrue(PUT_SIGNED_URL.equals(signedUrl)); } @Test public void testGetSignedUrlAWSSuccess() { - String signedUrl = CloudStorageUtil.getSignedUrl(JsonKey.AWS_STR, "awscontainer", "key"); + String signedUrl = CloudStorageUtil.getSignedUrl("aws", "awscontainer", "key"); assertTrue(SIGNED_URL.equals(signedUrl)); } }