diff --git a/.github/workflows/github-package-publish.yml b/.github/workflows/github-package-publish.yml new file mode 100644 index 00000000..02456b05 --- /dev/null +++ b/.github/workflows/github-package-publish.yml @@ -0,0 +1,20 @@ +name: Publishing to GitHub Packages +#on: [ push ] # Trigger the workflow when a push (commit) event occurs +on: + release: + types: [ created ] +jobs: + publish-github: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up Java for publishing to GitHub Packages + uses: actions/setup-java@v3 + with: + java-version: '11' + distribution: 'adopt' + server-id: github + - name: Publish to GitHub Packages + run: mvn --batch-mode deploy + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/maven--package-publish.yml b/.github/workflows/maven--package-publish.yml new file mode 100644 index 00000000..f7f37c44 --- /dev/null +++ b/.github/workflows/maven--package-publish.yml @@ -0,0 +1,27 @@ +name: Publishing to Maven Packages +#on: [ push ] # Trigger the workflow when a push (commit) event occurs +on: + release: + types: [ created ] +jobs: + publish-maven: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + steps: + - uses: actions/checkout@v3 + - name: Set up Maven Central Repository + uses: actions/setup-java@v3 + with: + java-version: '11' + distribution: 'adopt' + server-id: ossrh + server-username: ${{ secrets.OSSRH_USERNAME }} + server-password: ${{ secrets.OSSRH_TOKEN }} + gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} + gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }} + - name: Publish package + run: mvn clean deploy + +# run: mvn --batch-mode deploy diff --git a/.github/workflows/maven-publish.yml b/.github/workflows/maven-publish.yml deleted file mode 100644 index e10b45d5..00000000 --- a/.github/workflows/maven-publish.yml +++ /dev/null @@ -1,37 +0,0 @@ -name: Publish package to the Maven Central Repository -on: - release: - types: [ created ] -jobs: - publish-maven: - runs-on: ubuntu-latest - permissions: - contents: read - packages: write - steps: - - uses: actions/checkout@v3 - - name: Set up Maven Central Repository - uses: actions/setup-java@v3 - with: - java-version: '8' - distribution: 'adopt' - server-id: ossrh - server-username: ${{ secrets.OSSRH_USERNAME }} - server-password: ${{ secrets.OSSRH_TOKEN }} - gpg-passphrase: ${{ secrets.GPG_PASSPHRASE }} - - name: Publish package - run: mvn --batch-mode deploy - publish-github: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Set up Java for publishing to GitHub Packages - uses: actions/setup-java@v3 - with: - java-version: '8' - distribution: 'adopt' - server-id: github - - name: Publish to GitHub Packages - run: mvn --batch-mode deploy - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/sast-scan.yml b/.github/workflows/sast-scan.yml deleted file mode 100644 index f9316303..00000000 --- a/.github/workflows/sast-scan.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: SAST Scan -on: - pull_request: - types: [opened, synchronize, reopened] -jobs: - security: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Horusec Scan - run: docker run -v /var/run/docker.sock:/var/run/docker.sock -v $(pwd):/src horuszup/horusec-cli:latest horusec start -p /src -P $(pwd) \ No newline at end of file diff --git a/.github/workflows/secrets-scan.yml b/.github/workflows/secrets-scan.yml deleted file mode 100644 index f62d12dc..00000000 --- a/.github/workflows/secrets-scan.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: Secrets Scan -on: - pull_request: - types: [ opened, synchronize, reopened ] -jobs: - security: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Gittyleaks - uses: gupy-io/gittyleaks-action@v0.1 \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 395dcbab..35b14704 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # CHANGELOG +## v1.12.2 + +### Date: 08-AUG-2023 + +- Updated Utils SDK to v1.2.3 + +## v1.12.1 + +### Date: 07-Jun-2023 + +- Added Support For Nested Assets +- General Code Improvement + ## v1.12.0 ### Date: 25-APR-2023 diff --git a/pom.xml b/pom.xml index 73e00663..c4a942a9 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ 4.0.0 com.contentstack.sdk java - 1.12.1-SNAPSHOT + 1.12.2 jar contentstack-java Java SDK for Contentstack Content Delivery API @@ -22,7 +22,6 @@ 3.0.0 3.1.6 2.9.0 - 2.9.0 4.11.0 0.8.5 1.18.28 @@ -37,7 +36,7 @@ 20230227 0.8.7 2.5.3 - 1.2.2 + 1.2.3 @@ -87,14 +86,25 @@ + + ossrh https://oss.sonatype.org/content/repositories/snapshots + + + + + + + + ossrh https://oss.sonatype.org/service/local/staging/deploy/maven2/ + @@ -105,36 +115,41 @@ ${contentstack-utils-version} compile + org.json json ${json-version} compile + io.github.cdimascio dotenv-java ${dotenv-source.version} - runtime + + io.reactivex.rxjava3 rxjava ${rxjava-source.version} compile + com.squareup.retrofit2 retrofit ${retrofit-source.version} compile + com.squareup.retrofit2 converter-gson - ${converter-gson-source.version} - compile + ${retrofit-source.version} + com.squareup.okhttp3 logging-interceptor @@ -171,6 +186,36 @@ + + + release-sign-artifacts + + + performRelease + true + + + + + + org.apache.maven.plugins + maven-gpg-plugin + ${maven-gpg-plugin.version} + + + sign-artifacts + verify + + sign + + + + + + + + + + + + + + + + + + + + + + org.apache.maven.plugins maven-compiler-plugin @@ -268,8 +313,8 @@ ${nexus-staging-maven-plugin.version} true - ossrh - https://oss.sonatype.org/ + github + https://maven.pkg.github.com/contentstack/contentstack-java true diff --git a/src/main/java/com/contentstack/sdk/Asset.java b/src/main/java/com/contentstack/sdk/Asset.java index e5991d54..9352224b 100644 --- a/src/main/java/com/contentstack/sdk/Asset.java +++ b/src/main/java/com/contentstack/sdk/Asset.java @@ -57,8 +57,7 @@ protected void setStackInstance(@NotNull Stack stack) { /** * Configure asset. * - * @param jsonObject - * the json object + * @param jsonObject the json object * @return the asset */ public Asset configure(JSONObject jsonObject) { @@ -77,19 +76,17 @@ public Asset configure(JSONObject jsonObject) { /** * Sets header. * - * @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(); - * + * @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 onResponse(Stack stack, Request @Test @Order(1) void testContentstackPlugin() { - try { - ArrayList plugins = new ArrayList<>(); - Plugin1 plugin1 = new Plugin1(); - Plugin2 plugin2 = new Plugin2(); - - plugins.add(plugin1); - plugins.add(plugin2); - - // Create a config instance: - Config config = new Config(); - config.setPlugins(plugins); - - Stack stack = Contentstack.stack(API_KEY, DELIVERY_TOKEN, ENV, config); - ContentType contentType = stack.contentType("fakeCT"); - Entry entry = contentType.entry("something_demo"); - entry.fetch(new EntryResultCallBack() { - @Override - public void onCompletion(ResponseType responseType, Error error) { - Assertions.assertTrue(true); - } - }); - - } catch (IllegalAccessException e) { - throw new RuntimeException(e); - } + ArrayList plugins = new ArrayList<>(); + Plugin1 plugin1 = new Plugin1(); + Plugin2 plugin2 = new Plugin2(); + + plugins.add(plugin1); + plugins.add(plugin2); + + // Create a config instance: + Config config = new Config(); + config.setPlugins(plugins); + + ContentType contentType = stack.contentType("fakeCT"); + Entry entry = contentType.entry("something_demo"); + entry.fetch(new EntryResultCallBack() { + @Override + public void onCompletion(ResponseType responseType, Error error) { + Assertions.assertTrue(true); + } + }); } } diff --git a/src/test/java/com/contentstack/sdk/TestEntry.java b/src/test/java/com/contentstack/sdk/TestEntry.java index 590eb279..7dfc7d5e 100644 --- a/src/test/java/com/contentstack/sdk/TestEntry.java +++ b/src/test/java/com/contentstack/sdk/TestEntry.java @@ -1,6 +1,5 @@ package com.contentstack.sdk; -import io.github.cdimascio.dotenv.Dotenv; import org.json.JSONObject; import org.junit.jupiter.api.*; @@ -15,24 +14,10 @@ class TestEntry { private final Logger logger = Logger.getLogger(TestEntry.class.getName()); - private String DEFAULT_API_KEY, DEFAULT_DELIVERY_TOKEN, DEFAULT_ENV; - private final String CONTENT_TYPE = "product"; - private String entryUid = "justFakeIt"; - private Stack stack; + private String entryUid = Credentials.ENTRY_UID; + private final Stack stack = Credentials.getStack(); private Entry entry; - - @BeforeAll - public void intOnceBeforeAll() throws Exception { - Dotenv dotenv = Dotenv.load(); - DEFAULT_API_KEY = dotenv.get("API_KEY"); - DEFAULT_DELIVERY_TOKEN = dotenv.get("DELIVERY_TOKEN"); - DEFAULT_ENV = dotenv.get("ENVIRONMENT"); - String DEFAULT_HOST = dotenv.get("HOST"); - Config config = new Config(); - config.setHost(DEFAULT_HOST); - assert DEFAULT_API_KEY != null; - stack = Contentstack.stack(DEFAULT_API_KEY, DEFAULT_DELIVERY_TOKEN, DEFAULT_ENV, config); - } + private final String CONTENT_TYPE = Credentials.CONTENT_TYPE; @Test @Order(1) @@ -518,7 +503,7 @@ void testEntryIncludeOwner() { void testEntryPassConfigBranchIncludeBranch() throws IllegalAccessException { Config config = new Config(); config.setBranch("feature_branch"); - Stack branchStack = Contentstack.stack(DEFAULT_API_KEY, DEFAULT_DELIVERY_TOKEN, DEFAULT_ENV, config); + Stack branchStack = Contentstack.stack(Credentials.API_KEY, Credentials.DELIVERY_TOKEN, Credentials.ENVIRONMENT, config); Entry entry = branchStack.contentType("product").entry(entryUid); entry.includeBranch().fetch(new EntryResultCallBack() { @Override diff --git a/src/test/java/com/contentstack/sdk/TestQuery.java b/src/test/java/com/contentstack/sdk/TestQuery.java index 9e56f282..5cabc1d1 100644 --- a/src/test/java/com/contentstack/sdk/TestQuery.java +++ b/src/test/java/com/contentstack/sdk/TestQuery.java @@ -1,13 +1,11 @@ package com.contentstack.sdk; -import io.github.cdimascio.dotenv.Dotenv; import org.json.JSONObject; import org.junit.jupiter.api.*; import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import java.util.logging.Level; import java.util.logging.Logger; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -18,28 +16,14 @@ class TestQuery { private final Logger logger = Logger.getLogger(TestQuery.class.getName()); - private String DEFAULT_API_KEY, DEFAULT_DELIVERY_TOKEN, DEFAULT_ENV; - private Stack stack; + private final Stack stack = Credentials.getStack(); + private final String contentType = Credentials.CONTENT_TYPE; private Query query; private String entryUid; - @BeforeAll - public void beforeAll() throws IllegalAccessException { - logger.setLevel(Level.FINE); - Dotenv dotenv = Dotenv.load(); - DEFAULT_API_KEY = dotenv.get("API_KEY"); - DEFAULT_DELIVERY_TOKEN = dotenv.get("DELIVERY_TOKEN"); - DEFAULT_ENV = dotenv.get("ENVIRONMENT"); - String DEFAULT_HOST = dotenv.get("HOST"); - Config config = new Config(); - config.setHost(DEFAULT_HOST); - assert DEFAULT_API_KEY != null; - stack = Contentstack.stack(DEFAULT_API_KEY, DEFAULT_DELIVERY_TOKEN, DEFAULT_ENV, config); - } - @BeforeEach public void beforeEach() { - query = stack.contentType("product").query(); + query = stack.contentType(contentType).query(); } @Test @@ -863,7 +847,7 @@ public void onCompletion(ResponseType responseType, QueryResult queryresult, Err void testQueryPassConfigBranchIncludeBranch() throws IllegalAccessException { Config config = new Config(); config.setBranch("feature_branch"); - Stack branchStack = Contentstack.stack(DEFAULT_API_KEY, DEFAULT_DELIVERY_TOKEN, DEFAULT_ENV, config); + Stack branchStack = Contentstack.stack(Credentials.API_KEY, Credentials.DELIVERY_TOKEN, Credentials.ENVIRONMENT, config); Query query = branchStack.contentType("product").query(); query.includeBranch().find(new QueryResultsCallBack() { @Override @@ -874,7 +858,6 @@ public void onCompletion(ResponseType responseType, QueryResult queryresult, Err Assertions.assertTrue(query.urlQueries.has("include_branch")); Assertions.assertEquals(true, query.urlQueries.opt("include_branch")); Assertions.assertTrue(query.headers.containsKey("branch")); - logger.info("passed..."); } } \ No newline at end of file diff --git a/src/test/java/com/contentstack/sdk/TestQueryCase.java b/src/test/java/com/contentstack/sdk/TestQueryCase.java index 0010d60e..05bdbf13 100644 --- a/src/test/java/com/contentstack/sdk/TestQueryCase.java +++ b/src/test/java/com/contentstack/sdk/TestQueryCase.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.*; @@ -8,7 +7,6 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import java.util.logging.Level; import java.util.logging.Logger; import static org.junit.jupiter.api.Assertions.assertEquals; @@ -19,25 +17,10 @@ class TestQueryCase { private final Logger logger = Logger.getLogger(TestQueryCase.class.getName()); - private Stack stack; + private final Stack stack = Credentials.getStack(); private Query query; private String entryUid; - @BeforeAll - public void beforeAll() throws IllegalAccessException { - logger.setLevel(Level.FINE); - Dotenv dotenv = Dotenv.load(); - String DEFAULT_API_KEY = dotenv.get("API_KEY"); - String DEFAULT_DELIVERY_TOKEN = dotenv.get("DELIVERY_TOKEN"); - String DEFAULT_ENV = dotenv.get("ENVIRONMENT"); - String DEFAULT_HOST = dotenv.get("HOST"); - Config config = new Config(); - config.setHost(DEFAULT_HOST); - //config.setRegion(Config.ContentstackRegion.US); - assert DEFAULT_API_KEY != null; - stack = Contentstack.stack(DEFAULT_API_KEY, DEFAULT_DELIVERY_TOKEN, DEFAULT_ENV, config); - } - @BeforeEach public void beforeEach() { query = stack.contentType("product").query(); diff --git a/src/test/java/com/contentstack/sdk/TestStack.java b/src/test/java/com/contentstack/sdk/TestStack.java index 476453c5..b59ad734 100644 --- a/src/test/java/com/contentstack/sdk/TestStack.java +++ b/src/test/java/com/contentstack/sdk/TestStack.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.*; @@ -10,26 +9,16 @@ import java.util.LinkedHashMap; import java.util.logging.Logger; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.*; @TestInstance(TestInstance.Lifecycle.PER_CLASS) @TestMethodOrder(MethodOrderer.OrderAnnotation.class) class TestStack { - Stack stack; - protected String API_KEY, DELIVERY_TOKEN, ENV; + Stack stack = Credentials.getStack(); protected String paginationToken; private final Logger logger = Logger.getLogger(TestStack.class.getName()); - @BeforeEach - 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); - } @Test @Order(1) @@ -107,7 +96,7 @@ void testGetApiKey() { @Test @Order(13) void testGetDeliveryToken() { - assertTrue(stack.getDeliveryToken().startsWith("blt")); + assertNotNull(stack.getDeliveryToken()); } @Test @@ -115,13 +104,13 @@ void testGetDeliveryToken() { void testRemoveHeader() { stack.removeHeader("environment"); Assertions.assertFalse(stack.headers.containsKey("environment")); - stack.setHeader("environment", ENV); + stack.setHeader("environment", Credentials.ENVIRONMENT); } @Test @Order(16) void testSetHeader() { - stack.setHeader("environment", ENV); + stack.setHeader("environment", Credentials.ENVIRONMENT); assertTrue(stack.headers.containsKey("environment")); } @@ -221,7 +210,7 @@ void testSyncLocaleWithoutCallback() { @Test @Order(28) void testSyncPublishTypeEntryPublished() { - // deepcode ignore NullPassTo/test: + // decode ignore NullPassTo/test: stack.syncPublishType(Stack.PublishType.ENTRY_PUBLISHED, null); assertEquals(3, stack.syncParams.length()); assertEquals("entry_published", stack.syncParams.get("type")); @@ -282,7 +271,7 @@ void testSyncPublishTypeEntryDeleted() { @Test @Order(34) void testSyncPublishTypeEntryUnpublished() { - // deepcode ignore NullPassTo/test: + // decode ignore NullPassTo/test: stack.syncPublishType(Stack.PublishType.ENTRY_UNPUBLISHED, null); assertEquals(3, stack.syncParams.length()); assertEquals("entry_unpublished", stack.syncParams.get("type")); @@ -360,11 +349,7 @@ void testConfigGetHost() { @Disabled("No relevant code") @Order(41) void testSynchronizationAPIRequest() throws IllegalAccessException { - Dotenv dotenv = Dotenv.load(); - String apiKey = dotenv.get("API_KEY"); - String deliveryToken = dotenv.get("DELIVERY_TOKEN"); - String env = dotenv.get("ENVIRONMENT"); - Stack stack = Contentstack.stack(apiKey, deliveryToken, env); + stack.sync(new SyncResultCallBack() { @Override public void onCompletion(SyncStack response, Error error) { @@ -385,11 +370,6 @@ public void onCompletion(SyncStack response, Error error) { @Disabled("No relevant code") @Order(42) void testSyncPaginationToken() throws IllegalAccessException { - Dotenv dotenv = Dotenv.load(); - String apiKey = dotenv.get("API_KEY"); - String deliveryToken = dotenv.get("DELIVERY_TOKEN"); - String env = dotenv.get("ENVIRONMENT"); - Stack stack = Contentstack.stack(apiKey, deliveryToken, env); stack.syncPaginationToken(paginationToken, new SyncResultCallBack() { @Override public void onCompletion(SyncStack response, Error error) { diff --git a/src/test/resources/env b/src/test/resources/env new file mode 100644 index 00000000..e69de29b