- *
- * Stack stack = Contentstack.stack("apiKey", "deliveryToken", "environment"); Asset asset =
- * stack.asset(asset_uid); asset.setHeader();
- *
+ * @param headerKey the header key
+ * @param headerValue the header value
+ *
+ *
+ *
+ * Example :
+ *
+ *
+ * Stack stack = Contentstack.stack("apiKey", "deliveryToken", "environment"); Asset asset =
+ * stack.asset(asset_uid); asset.setHeader();
+ *
*/
public void setHeader(@NotNull String headerKey, @NotNull String headerValue) {
headers.put(headerKey, headerValue);
@@ -98,17 +95,16 @@ public void setHeader(@NotNull String headerKey, @NotNull String headerValue) {
/**
* Remove header.
*
- * @param headerKey
- * the header key
- *
- *
- *
- * Example :
- *
- *
+ *
- * Stack stack = Contentstack.stack("apiKey", "deliveryToken", "environment"); Asset asset =
- * stack.asset(asset_uid); asset.removeHeader();
- *
+ * @param headerKey the header key
+ *
+ *
+ *
+ * Example :
+ *
+ * Stack stack = Contentstack.stack("apiKey", "deliveryToken", "environment"); Asset asset =
+ * stack.asset(asset_uid); asset.removeHeader();
+ *
*/
public void removeHeader(@NotNull String headerKey) {
headers.remove(headerKey);
@@ -457,10 +453,8 @@ public Asset includeDimension() {
/**
* Add param asset.
*
- * @param paramKey
- * the param key
- * @param paramValue
- * the param value
+ * @param paramKey the param key
+ * @param paramValue the param value
* @return the asset
*
*
@@ -538,8 +532,7 @@ public Asset includeMetadata() {
/**
* Fetch.
*
- * @param callback
- * the callback
+ * @param callback the callback
*/
public void fetch(FetchResultCallback callback) {
urlQueries.put(ENVIRONMENT, this.headers.get(ENVIRONMENT));
diff --git a/src/main/java/com/contentstack/sdk/AssetLibrary.java b/src/main/java/com/contentstack/sdk/AssetLibrary.java
index 8401a568..5bb86ba8 100644
--- a/src/main/java/com/contentstack/sdk/AssetLibrary.java
+++ b/src/main/java/com/contentstack/sdk/AssetLibrary.java
@@ -34,10 +34,8 @@ protected void setStackInstance(@NotNull Stack stack) {
/**
* Sets header.
*
- * @param headerKey
- * the header key
- * @param headerValue
- * the header value
+ * @param headerKey the header key
+ * @param headerValue the header value
*/
public void setHeader(@NotNull String headerKey, @NotNull String headerValue) {
this.headers.put(headerKey, headerValue);
@@ -46,8 +44,7 @@ public void setHeader(@NotNull String headerKey, @NotNull String headerValue) {
/**
* Remove header.
*
- * @param headerKey
- * the header key
+ * @param headerKey the header key
*/
public void removeHeader(@NotNull String headerKey) {
if (!headerKey.isEmpty()) {
@@ -58,10 +55,8 @@ public void removeHeader(@NotNull String headerKey) {
/**
* Sort asset library.
*
- * @param keyOrderBy
- * the key order by
- * @param orderby
- * the orderby
+ * @param keyOrderBy the key order by
+ * @param orderby the orderby
* @return the asset library
*/
public AssetLibrary sort(String keyOrderBy, ORDERBY orderby) {
@@ -141,8 +136,7 @@ public int getCount() {
/**
* Fetch all.
*
- * @param callback
- * the callback
+ * @param callback the callback
*/
public void fetchAll(FetchAssetsCallback callback) {
this.callback = callback;
diff --git a/src/main/java/com/contentstack/sdk/AssetModel.java b/src/main/java/com/contentstack/sdk/AssetModel.java
index c0d84f08..15c4ffb3 100644
--- a/src/main/java/com/contentstack/sdk/AssetModel.java
+++ b/src/main/java/com/contentstack/sdk/AssetModel.java
@@ -21,10 +21,8 @@ class AssetModel {
/**
* Instantiates a new Asset model.
*
- * @param response
- * the response
- * @param isArray
- * the is array
+ * @param response the response
+ * @param isArray the is array
*/
public AssetModel(JSONObject response, boolean isArray) {
diff --git a/src/main/java/com/contentstack/sdk/Constants.java b/src/main/java/com/contentstack/sdk/Constants.java
index a6500e1e..5a1c19c7 100644
--- a/src/main/java/com/contentstack/sdk/Constants.java
+++ b/src/main/java/com/contentstack/sdk/Constants.java
@@ -21,7 +21,7 @@
public class Constants {
private static final Logger logger = Logger.getLogger(Constants.class.getSimpleName());
- protected static final String SDK_VERSION = "1.12.1";
+ protected static final String SDK_VERSION = "1.12.2";
protected static final String ENVIRONMENT = "environment";
protected static final String CONTENT_TYPE_UID = "content_type_uid";
protected static final String ENTRY_UID = "entry_uid";
diff --git a/src/test/java/com/contentstack/sdk/Credentials.java b/src/test/java/com/contentstack/sdk/Credentials.java
new file mode 100644
index 00000000..9b5bb2c5
--- /dev/null
+++ b/src/test/java/com/contentstack/sdk/Credentials.java
@@ -0,0 +1,84 @@
+package com.contentstack.sdk;
+
+import io.github.cdimascio.dotenv.Dotenv;
+import io.github.cdimascio.dotenv.DotenvException;
+import lombok.var;
+
+import java.io.File;
+import java.rmi.AccessException;
+
+public class Credentials {
+ static Dotenv env = getEnv();
+
+ private static String envChecker() {
+ String githubActions = System.getenv("GITHUB_ACTIONS");
+ if (githubActions != null && githubActions.equals("true")) {
+ System.out.println("Tests are running in GitHub Actions environment.");
+ String mySecretKey = System.getenv("API_KEY");
+ System.out.println("My Secret Key: " + mySecretKey);
+ return "GitHub";
+ } else {
+ System.out.println("Tests are running in a local environment.");
+ return "local";
+ }
+ }
+
+ public static Dotenv getEnv() {
+ String currentDirectory = System.getProperty("user.dir");
+ File envFile = new File(currentDirectory, "env");
+ env = Dotenv.configure()
+ .directory("src/test/resources")
+ .filename("env") // instead of '.env', use 'env'
+ .load();
+ try {
+ env = Dotenv.load();
+ } catch (DotenvException ex) {
+ System.out.println("Could not load from local .env");
+// File envFile = new File(currentDirectory, ".env");
+// try {
+// // Create .env file in the current directory
+// envFile.createNewFile();
+// } catch (IOException e) {
+// System.err.println("An error occurred while creating .env file.");
+// e.printStackTrace();
+// }
+ }
+ return env;
+ }
+
+
+ public final static String pwd = (env.get("PWD") != null) ? env.get("PWD") : "contentstack-java";
+ public final static String HOST = (env.get("HOST") != null) ? env.get("HOST") : "cdn.contentstack.io";
+ public final static String API_KEY = (env.get("API_KEY") != null) ? env.get("API_KEY") : "";
+ public final static String DELIVERY_TOKEN = (env.get("DELIVERY_TOKEN") != null) ? env.get("DELIVERY_TOKEN") : "";
+ public final static String ENVIRONMENT = (env.get("ENVIRONMENT") != null) ? env.get("ENVIRONMENT") : "env1";
+ public final static String CONTENT_TYPE = (env.get("contentType") != null) ? env.get("contentType") : "product";
+ public final static String ENTRY_UID = (env.get("assetUid") != null) ? env.get("assetUid") : "";
+
+
+ private static volatile Stack stack;
+
+ private Credentials() throws AccessException {
+ throw new AccessException("Can not access credential access");
+ }
+
+ public static Stack getStack() {
+ if (stack == null) {
+ var envCheck = envChecker();
+ System.out.println(envCheck);
+ synchronized (Credentials.class) {
+ if (stack == null) {
+ try {
+ Config config = new Config();
+ config.setHost(HOST);
+ stack = Contentstack.stack(API_KEY, DELIVERY_TOKEN, ENVIRONMENT, config);
+ } catch (IllegalAccessException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ }
+ }
+ return stack;
+ }
+
+}
diff --git a/src/test/java/com/contentstack/sdk/TestAsset.java b/src/test/java/com/contentstack/sdk/TestAsset.java
index 2bfd69ae..0991b583 100644
--- a/src/test/java/com/contentstack/sdk/TestAsset.java
+++ b/src/test/java/com/contentstack/sdk/TestAsset.java
@@ -1,6 +1,5 @@
package com.contentstack.sdk;
-import io.github.cdimascio.dotenv.Dotenv;
import org.json.JSONObject;
import org.junit.jupiter.api.*;
@@ -11,25 +10,27 @@
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
class TestAsset {
- protected String API_KEY, DELIVERY_TOKEN, ENV;
private final Logger logger = Logger.getLogger(TestAsset.class.getName());
private String assetUid;
- private Stack stack;
+ private final Stack stack = Credentials.getStack();
- @BeforeAll
- public void initBeforeTests() throws IllegalAccessException {
- Dotenv dotenv = Dotenv.load();
- API_KEY = dotenv.get("API_KEY");
- DELIVERY_TOKEN = dotenv.get("DELIVERY_TOKEN");
- ENV = dotenv.get("ENVIRONMENT");
- Config config = new Config();
- config.setHost(dotenv.get("HOST"));
- stack = Contentstack.stack(API_KEY, DELIVERY_TOKEN, ENV, config);
+ private String envChecker() {
+ String githubActions = System.getenv("GITHUB_ACTIONS");
+ if (githubActions != null && githubActions.equals("true")) {
+ System.out.println("Tests are running in GitHub Actions environment.");
+ String mySecretKey = System.getenv("API_KEY");
+ System.out.println("My Secret Key: " + mySecretKey);
+ return "GitHub";
+ } else {
+ System.out.println("Tests are running in a local environment.");
+ return "local";
+ }
}
@Test
@Order(1)
void testNewAssetLibrary() {
+ envChecker();
AssetLibrary assets = stack.assetLibrary();
assets.fetchAll(new FetchAssetsCallback() {
@Override
diff --git a/src/test/java/com/contentstack/sdk/TestAssetLibrary.java b/src/test/java/com/contentstack/sdk/TestAssetLibrary.java
index 8a3d8617..6e49a061 100644
--- a/src/test/java/com/contentstack/sdk/TestAssetLibrary.java
+++ b/src/test/java/com/contentstack/sdk/TestAssetLibrary.java
@@ -1,6 +1,5 @@
package com.contentstack.sdk;
-import io.github.cdimascio.dotenv.Dotenv;
import org.junit.jupiter.api.*;
import java.util.List;
@@ -11,21 +10,9 @@
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
class TestAssetLibrary {
-
- protected String API_KEY, DELIVERY_TOKEN, ENV;
private final Logger logger = Logger.getLogger(TestAssetLibrary.class.getName());
- private Stack stack;
+ private final Stack stack = Credentials.getStack();
- @BeforeAll
- public void initBeforeTests() throws IllegalAccessException {
- Dotenv dotenv = Dotenv.load();
- API_KEY = dotenv.get("API_KEY");
- DELIVERY_TOKEN = dotenv.get("DELIVERY_TOKEN");
- ENV = dotenv.get("ENVIRONMENT");
- Config config = new Config();
- config.setHost(dotenv.get("HOST"));
- stack = Contentstack.stack(API_KEY, DELIVERY_TOKEN, ENV, config);
- }
@Test
@Order(1)
@@ -55,7 +42,6 @@ void testAssetSetHeader() {
AssetLibrary assetLibrary = stack.assetLibrary();
assetLibrary.setHeader("headerKey", "headerValue");
Assertions.assertTrue(assetLibrary.headers.containsKey("headerKey"));
- logger.info("passed...");
}
@Test
@@ -64,14 +50,12 @@ void testAssetRemoveHeader() {
assetLibrary.setHeader("headerKey", "headerValue");
assetLibrary.removeHeader("headerKey");
Assertions.assertFalse(assetLibrary.headers.containsKey("headerKey"));
- logger.info("passed...");
}
@Test
void testAssetSortAscending() {
AssetLibrary assetLibrary = stack.assetLibrary().sort("ascending", AssetLibrary.ORDERBY.ASCENDING);
Assertions.assertFalse(assetLibrary.headers.containsKey("asc"));
- logger.info("passed...");
}
@Test
@@ -79,14 +63,12 @@ void testAssetSortDescending() {
AssetLibrary assetLibrary = stack.assetLibrary();
assetLibrary.sort("descending", AssetLibrary.ORDERBY.DESCENDING);
Assertions.assertFalse(assetLibrary.headers.containsKey("desc"));
- logger.info("passed...");
}
@Test
void testAssetIncludeCount() {
AssetLibrary assetLibrary = stack.assetLibrary().includeCount();
Assertions.assertFalse(assetLibrary.headers.containsKey("include_count"));
- logger.info("passed...");
}
@Test
@@ -94,27 +76,23 @@ void testAssetIncludeRelativeUrl() {
AssetLibrary assetLibrary = stack.assetLibrary();
assetLibrary.includeRelativeUrl();
Assertions.assertFalse(assetLibrary.headers.containsKey("relative_urls"));
- logger.info("passed...");
}
@Test
void testAssetGetCount() {
AssetLibrary assetLibrary = stack.assetLibrary().includeRelativeUrl();
Assertions.assertEquals(0, assetLibrary.getCount());
- logger.info("passed...");
}
@Test
void testIncludeFallback() {
AssetLibrary assetLibrary = stack.assetLibrary().includeFallback();
Assertions.assertFalse(assetLibrary.headers.containsKey("include_fallback"));
- logger.info("passed...");
}
@Test
void testIncludeOwner() {
AssetLibrary assetLibrary = stack.assetLibrary().includeMetadata();
Assertions.assertFalse(assetLibrary.headers.containsKey("include_owner"));
- logger.info("passed...");
}
}
diff --git a/src/test/java/com/contentstack/sdk/TestContentType.java b/src/test/java/com/contentstack/sdk/TestContentType.java
index 1a3af487..3477c3f3 100644
--- a/src/test/java/com/contentstack/sdk/TestContentType.java
+++ b/src/test/java/com/contentstack/sdk/TestContentType.java
@@ -1,6 +1,5 @@
package com.contentstack.sdk;
-import io.github.cdimascio.dotenv.Dotenv;
import org.json.JSONArray;
import org.json.JSONObject;
import org.junit.jupiter.api.*;
@@ -11,18 +10,8 @@
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
class TestContentType {
- protected String API_KEY, DELIVERY_TOKEN, ENV;
private final Logger logger = Logger.getLogger(TestContentType.class.getName());
- private Stack stack;
-
- @BeforeAll
- public void initBeforeTests() throws IllegalAccessException {
- Dotenv dotenv = Dotenv.load();
- API_KEY = dotenv.get("API_KEY");
- DELIVERY_TOKEN = dotenv.get("DELIVERY_TOKEN");
- ENV = dotenv.get("ENVIRONMENT");
- stack = Contentstack.stack(API_KEY, DELIVERY_TOKEN, ENV);
- }
+ private final Stack stack = Credentials.getStack();
@Test
@Order(1)
diff --git a/src/test/java/com/contentstack/sdk/TestContentstack.java b/src/test/java/com/contentstack/sdk/TestContentstack.java
index 700e0ab7..c4c20d98 100644
--- a/src/test/java/com/contentstack/sdk/TestContentstack.java
+++ b/src/test/java/com/contentstack/sdk/TestContentstack.java
@@ -1,6 +1,5 @@
package com.contentstack.sdk;
-import io.github.cdimascio.dotenv.Dotenv;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
@@ -16,10 +15,9 @@ class TestContentstack {
@BeforeAll
public void initBeforeTests() {
- Dotenv dotenv = Dotenv.load();
- API_KEY = dotenv.get("API_KEY");
- DELIVERY_TOKEN = dotenv.get("DELIVERY_TOKEN");
- ENV = dotenv.get("ENVIRONMENT");
+ API_KEY = Credentials.API_KEY;
+ DELIVERY_TOKEN = Credentials.DELIVERY_TOKEN;
+ ENV = Credentials.ENVIRONMENT;
}
@Test
@@ -35,7 +33,6 @@ void initStackPrivateModifier() {
@Test
void initStackWithNullAPIKey() {
try {
-
Contentstack.stack(null, DELIVERY_TOKEN, ENV);
} catch (Exception e) {
logger.info(e.getLocalizedMessage());
diff --git a/src/test/java/com/contentstack/sdk/TestContentstackPlugin.java b/src/test/java/com/contentstack/sdk/TestContentstackPlugin.java
index ea0c67fc..48223995 100644
--- a/src/test/java/com/contentstack/sdk/TestContentstackPlugin.java
+++ b/src/test/java/com/contentstack/sdk/TestContentstackPlugin.java
@@ -1,8 +1,8 @@
package com.contentstack.sdk;
-import io.github.cdimascio.dotenv.Dotenv;
import okhttp3.Request;
import org.junit.jupiter.api.*;
+
import java.util.ArrayList;
@@ -10,15 +10,7 @@
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
class TestContentstackPlugin {
- protected String API_KEY, DELIVERY_TOKEN, ENV;
-
- @BeforeAll
- public void initBeforeTests() {
- Dotenv dotenv = Dotenv.load();
- API_KEY = dotenv.get("API_KEY");
- DELIVERY_TOKEN = dotenv.get("DELIVERY_TOKEN");
- ENV = dotenv.get("ENVIRONMENT");
- }
+ final Stack stack = Credentials.getStack();
static class Plugin1 implements ContentstackPlugin {
@@ -56,31 +48,25 @@ public retrofit2.Response