updateWorkflow(@NotNull JSONObject body) {
return this.service.updateWorkflowDetails(this.headers, this.params, body);
}
+ /**
+ * The Add Release items request allows you to add multiple items (entries and
+ * assets) to a Release.
+ *
+ * When executing the API request, you need to provide the Release UID. In the
+ * 'Body' section, you need to provide
+ * the details of the items
+ *
+ * @param jsonBody requestBody for create/add single Item
+ * @return Call
+ */
+ public Call addReleaseItems(@NotNull JSONObject jsonBody) {
+ Call addItemsCall;
+ this.headers.put("bulk_version", "2.0");
+ addItemsCall = this.service.addBulkItems(this.headers, this.params, jsonBody);
+ this.headers.remove("bulk_version");
+ return addItemsCall;
+ }
+
+ /**
+ * The Update Release items request to Update release items to latest version
+ */
+ public Call updateReleaseItems(@NotNull JSONObject jsonBody) {
+ Call updateItemsCall;
+ this.headers.put("bulk_version", "2.0");
+ updateItemsCall = this.service.updateBulkItems(this.headers, this.params, jsonBody);
+ this.headers.remove("bulk_version");
+ return updateItemsCall;
+ }
+
+ /**
+ * The Get Job Status request allows you to get the status of a job.
+ *
+ * When executing the API request, you need to provide the job UID.
+ *
+ * @param jobUid the job UID
+ * @return Call
+ */
+ public Call jobStatus(@NotNull String jobUid) {
+ Call jobStatusCall;
+ this.headers.put("bulk_version", "2.0");
+ jobStatusCall = this.service.getJobStatus(this.headers, jobUid, this.params);
+ this.headers.remove("bulk_version");
+ return jobStatusCall;
+ }
/**
* Adds a header with the specified key and value to this location and returns
@@ -236,7 +281,8 @@ public BulkOperation addHeader(@NotNull String key, @NotNull String value) {
* location.
*
* @param params a {@link HashMap} containing the parameters to be added
- * @return a new {@link BulkOperation} object with the specified parameters added
+ * @return a new {@link BulkOperation} object with the specified parameters
+ * added
* @throws NullPointerException if the params argument is null
*/
@Override
diff --git a/src/main/java/com/contentstack/cms/stack/BulkOperationService.java b/src/main/java/com/contentstack/cms/stack/BulkOperationService.java
index 7344b293..07080734 100644
--- a/src/main/java/com/contentstack/cms/stack/BulkOperationService.java
+++ b/src/main/java/com/contentstack/cms/stack/BulkOperationService.java
@@ -4,8 +4,11 @@
import org.json.simple.JSONObject;
import retrofit2.Call;
import retrofit2.http.Body;
+import retrofit2.http.GET;
import retrofit2.http.HeaderMap;
import retrofit2.http.POST;
+import retrofit2.http.PUT;
+import retrofit2.http.Path;
import retrofit2.http.QueryMap;
import java.util.HashMap;
@@ -37,4 +40,22 @@ Call updateWorkflowDetails(
@QueryMap HashMap params,
@Body JSONObject body);
+ @POST("bulk/release/items")
+ Call addBulkItems(
+ @HeaderMap Map headers,
+ @QueryMap Map params,
+ @Body JSONObject body);
+
+ @PUT("bulk/release/update_items")
+ Call updateBulkItems(
+ @HeaderMap Map headers,
+ @QueryMap Map params,
+ @Body JSONObject body);
+
+ @GET("bulk/jobs/{job_id}")
+ Call getJobStatus(
+ @HeaderMap Map headers,
+ @Path("job_id") String jobUid,
+ @QueryMap Map params);
+
}
diff --git a/src/main/java/com/contentstack/cms/stack/ReleaseItem.java b/src/main/java/com/contentstack/cms/stack/ReleaseItem.java
index 49b93cd5..8dbf44f7 100644
--- a/src/main/java/com/contentstack/cms/stack/ReleaseItem.java
+++ b/src/main/java/com/contentstack/cms/stack/ReleaseItem.java
@@ -30,7 +30,7 @@ public class ReleaseItem implements BaseImplementation {
protected HashMap params;
private final String releaseUid;
- protected ReleaseItem(Retrofit retrofit,Map headers, String releaseUid) {
+ protected ReleaseItem(Retrofit retrofit, Map headers, String releaseUid) {
this.headers = new HashMap<>();
this.headers.putAll(headers);
this.params = new HashMap<>();
@@ -43,7 +43,6 @@ void validate() {
throw new IllegalAccessError("Release Uid can not be null or empty");
}
-
/**
* @param key A string representing the key of the parameter. It cannot be
* null and must be
@@ -244,4 +243,38 @@ public Call delete() {
return this.service.removeItem(this.headers, this.releaseUid);
}
+ /**
+ * The Deletes a multiple items request deteles multiple items from a Release
+ *
+ * @param jsonBody requestBody for delete Items
+ * @return Call
+ */
+ public Call deleteReleaseItems(@NotNull JSONObject jsonBody) {
+ validate();
+ return this.service.deleteItems(this.headers, this.releaseUid, this.params, jsonBody);
+ }
+
+ /**
+ * The Delete a single item request delete single item from a Release
+ *
+ * @param jsonBody requestBody for delete single Item
+ * @return Call
+ */
+ public Call deleteReleaseItem(@NotNull JSONObject jsonBody) {
+ validate();
+ return this.service.deleteItem(this.headers, this.releaseUid, this.params, jsonBody);
+ }
+
+ /**
+ * The Move items in a Release request allows you to move one or more items
+ * (entries and/or assets) from one
+ * Release to another.
+ *
+ * @param jsonBody requestBody for move items
+ * @return Call
+ */
+ public Call move(@NotNull JSONObject jsonBody) {
+ validate();
+ return this.service.moveItems(this.headers, this.releaseUid, this.params, jsonBody);
+ }
}
diff --git a/src/main/java/com/contentstack/cms/stack/ReleaseService.java b/src/main/java/com/contentstack/cms/stack/ReleaseService.java
index 7d470db7..a11bdba0 100644
--- a/src/main/java/com/contentstack/cms/stack/ReleaseService.java
+++ b/src/main/java/com/contentstack/cms/stack/ReleaseService.java
@@ -79,4 +79,24 @@ Call clone(
@QueryMap Map params,
@Body JSONObject body);
+ @POST("/releases/{source_releaseUid}/items/move")
+ Call moveItems(
+ @HeaderMap Map headers,
+ @Path("source_releaseUid") String releaseUid,
+ @QueryMap Map params,
+ @Body JSONObject body);
+
+ @HTTP(method = "DELETE", path = "releases/{release_uid}/items", hasBody = true)
+ Call deleteItems(
+ @HeaderMap Map headers,
+ @Path("release_uid") String releaseUid,
+ @QueryMap Map params,
+ @Body JSONObject body);
+
+ @HTTP(method = "DELETE", path = "releases/{release_uid}/item", hasBody = true)
+ Call deleteItem(
+ @HeaderMap Map headers,
+ @Path("release_uid") String releaseUid,
+ @QueryMap Map params,
+ @Body JSONObject body);
}
diff --git a/src/test/java/com/contentstack/cms/stack/BulkOperationTest.java b/src/test/java/com/contentstack/cms/stack/BulkOperationAPITest.java
similarity index 80%
rename from src/test/java/com/contentstack/cms/stack/BulkOperationTest.java
rename to src/test/java/com/contentstack/cms/stack/BulkOperationAPITest.java
index 9fbdc7eb..9ff653f0 100644
--- a/src/test/java/com/contentstack/cms/stack/BulkOperationTest.java
+++ b/src/test/java/com/contentstack/cms/stack/BulkOperationAPITest.java
@@ -11,7 +11,7 @@
@Tag("unit")
@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
-class BulkOperationTest {
+class BulkOperationAPITest {
protected static String AUTHTOKEN = TestClient.AUTHTOKEN;
protected static String API_KEY = TestClient.API_KEY;
@@ -130,4 +130,37 @@ void testUpdateWorkflow() {
request.url().toString());
}
+ @Test
+ @Order(8)
+ void testAddBulkItems() {
+ Request request = bulkOperation.addReleaseItems(new JSONObject()).request();
+ Assertions.assertEquals(3, request.headers().names().size());
+ Assertions.assertEquals("POST", request.method());
+ Assertions.assertTrue(request.url().isHttps());
+ Assertions.assertEquals("bulk", request.url().pathSegments().get(1));
+ Assertions.assertEquals("v3", request.url().pathSegments().get(0));
+ }
+
+ @Test
+ @Order(9)
+ void testUpdateBulkItems() {
+ Request request = bulkOperation.updateReleaseItems(new JSONObject()).request();
+ Assertions.assertEquals(3, request.headers().names().size());
+ Assertions.assertEquals("PUT", request.method());
+ Assertions.assertTrue(request.url().isHttps());
+ Assertions.assertEquals("bulk", request.url().pathSegments().get(1));
+ Assertions.assertEquals("v3", request.url().pathSegments().get(0));
+ }
+
+ @Test
+ @Order(10)
+ void testGetJobStatus() {
+ Request request = bulkOperation.jobStatus("jobId").request();
+ Assertions.assertEquals("GET", request.method());
+ Assertions.assertTrue(request.url().isHttps());
+ Assertions.assertEquals("bulk", request.url().pathSegments().get(1));
+ Assertions.assertEquals("v3", request.url().pathSegments().get(0));
+ Assertions.assertEquals("jobs", request.url().pathSegments().get(2));
+ }
+
}
diff --git a/src/test/java/com/contentstack/cms/stack/ReleaseAPITest.java b/src/test/java/com/contentstack/cms/stack/ReleaseAPITest.java
new file mode 100644
index 00000000..18b5c15c
--- /dev/null
+++ b/src/test/java/com/contentstack/cms/stack/ReleaseAPITest.java
@@ -0,0 +1,188 @@
+package com.contentstack.cms.stack;
+
+import com.contentstack.cms.TestClient;
+import com.contentstack.cms.Utils;
+import com.contentstack.cms.core.Util;
+
+import okhttp3.Request;
+import okhttp3.ResponseBody;
+import retrofit2.Response;
+
+import java.io.IOException;
+
+import org.json.simple.JSONObject;
+import org.json.simple.parser.JSONParser;
+import org.json.simple.parser.ParseException;
+import org.junit.jupiter.api.*;
+import static org.junit.jupiter.api.Assertions.*;
+
+@Tag("api")
+@TestInstance(TestInstance.Lifecycle.PER_CLASS)
+@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
+
+class ReleaseAPITest {
+
+ public static Release releases;
+ protected static String API_KEY = TestClient.API_KEY;
+ protected static String MANAGEMENT_TOKEN = TestClient.MANAGEMENT_TOKEN;
+ protected static Stack stack;
+ protected String releaseUid1;
+ protected String releaseUid2;
+ JSONParser parser = new JSONParser();
+
+ @BeforeAll
+ public void setUp() {
+ stack = TestClient.getStack().addHeader(Util.API_KEY, API_KEY)
+ .addHeader("api_key", API_KEY);
+ }
+
+ @Order(1)
+ @Test
+ void testCreateRelease() throws IOException, ParseException {
+ JSONObject requestBody = Utils.readJson("releases/create_release1.json");
+ Response response = stack.releases().create(requestBody).execute();
+
+ assertTrue(response.isSuccessful(), "Release creation should be successful");
+
+ String responseString = response.body().string();
+ JSONObject responseObject = (JSONObject) parser.parse(responseString);
+ JSONObject releaseObject = (JSONObject) responseObject.get("release");
+ releaseUid1 = (String) releaseObject.get("uid");
+
+ assertNotNull(releaseUid1, "Release UID should not be null");
+ assertEquals("First release", releaseObject.get("name"), "Release name should match");
+ assertEquals("Adding release date", releaseObject.get("description"),
+ "Release description should match");
+ assertEquals("Release created successfully.", responseObject.get("notice"), "Success notice should be present");
+ }
+
+ @Order(2)
+ @Test
+ void testFindReleases() throws IOException, ParseException {
+ Response response = stack.releases().find().execute();
+
+ assertTrue(response.isSuccessful(), "Fetch releases should be successful");
+
+ String responseString = response.body().string();
+ JSONObject responseObject = (JSONObject) parser.parse(responseString);
+ org.json.simple.JSONArray releases = (org.json.simple.JSONArray) responseObject.get("releases");
+
+ assertNotNull(releases, "Releases array should not be null");
+ assertFalse(releases.isEmpty(), "Releases array should not be empty");
+
+ boolean foundRelease = false;
+ for (Object obj : releases) {
+ JSONObject release = (JSONObject) obj;
+ if (releaseUid1.equals(release.get("uid"))) {
+ foundRelease = true;
+ assertEquals("First release", release.get("name"), "Release name should match");
+ break;
+ }
+ }
+
+ assertTrue(foundRelease, "Created release should be present in the releases list");
+ }
+
+ @Test
+ @Order(3)
+ void testUpdateRelease() throws IOException, ParseException {
+ assertNotNull(releaseUid1, "Release UID should be available for updating");
+
+ JSONObject requestBody = Utils.readJson("releases/update_release1.json");
+
+ Response response = stack.releases(releaseUid1).update(requestBody).execute();
+ assertTrue(response.isSuccessful(), "Release update should be successful");
+
+ String responseString = response.body().string();
+ JSONObject responseObject = (JSONObject) parser.parse(responseString);
+ JSONObject releaseObject = (JSONObject) responseObject.get("release");
+ assertNotNull(releaseObject, "Release object should not be null");
+ assertEquals(releaseUid1, releaseObject.get("uid"), "Release UID should match");
+ assertEquals("First release update", releaseObject.get("name"), "Release name should match");
+ assertEquals("Adding release date", releaseObject.get("description"),
+ "Release description should match");
+ assertEquals("Release updated successfully.", responseObject.get("notice"), "Success notice should be present");
+ }
+
+ @Test
+ @Order(4)
+ void testFetchReleaseByUid() throws IOException, ParseException {
+ assertNotNull(releaseUid1, "Release UID should be available for fetching");
+
+ Response response = stack.releases(releaseUid1).fetch().execute();
+
+ assertTrue(response.isSuccessful(), "Fetch release by UID should be successful");
+
+ String responseString = response.body().string();
+ JSONObject responseObject = (JSONObject) parser.parse(responseString);
+ JSONObject releaseObject = (JSONObject) responseObject.get("release");
+
+ assertNotNull(releaseObject, "Release object should not be null");
+ assertEquals(releaseUid1, releaseObject.get("uid"), "Release UID should match");
+ assertEquals("First release update", releaseObject.get("name"), "Release name should match");
+ }
+
+ @Order(5)
+ @Test
+ void testCloneRelease() throws IOException, ParseException {
+ JSONObject requestBody = Utils.readJson("releases/create_release1.json");
+ Response response = stack.releases(releaseUid1).clone(requestBody).execute();
+
+ assertTrue(response.isSuccessful(), "Clone release should be successful");
+
+ String responseString = response.body().string();
+ JSONObject responseObject = (JSONObject) parser.parse(responseString);
+ JSONObject releaseObject = (JSONObject) responseObject.get("release");
+ releaseUid2 = (String) releaseObject.get("uid");
+
+ assertNotNull(releaseUid2, "Clone release UID should not be null");
+ assertEquals("First release", releaseObject.get("name"), "Clone release name should match");
+ assertEquals("Adding release date", releaseObject.get("description"),
+ "Second release description should match");
+ assertEquals("Release cloned successfully.", responseObject.get("notice"), "Success notice should be present");
+ }
+
+ @Order(6)
+ @Test
+ void testDeployRelease() throws IOException, ParseException {
+ JSONObject requestBody = Utils.readJson("releases/create_release1.json");
+
+ assertNotNull(releaseUid2, "Release UID should be available for deployment");
+ Request request = stack.releases(releaseUid1).deploy(requestBody).request();
+ Assertions.assertEquals("POST", request.method(), "Request method should be PUT");
+ Assertions.assertTrue(request.url().toString().contains(releaseUid1),
+ "Request URL should contain the release UID");
+ Assertions.assertEquals("releases", request.url().pathSegments().get(1));
+ Assertions.assertEquals("v3", request.url().pathSegments().get(0));
+ }
+
+ @Order(7)
+ @Test
+ void testDeleteRelease1() throws IOException, ParseException {
+ assertNotNull(releaseUid1, "Release UID should be available for deletion");
+
+ Response response = stack.releases(releaseUid1).delete().execute();
+
+ assertTrue(response.isSuccessful(), "Release deletion should be successful");
+
+ String responseString = response.body().string();
+ JSONObject responseObject = (JSONObject) parser.parse(responseString);
+
+ assertEquals("Release deleted successfully.", responseObject.get("notice"), "Success notice should be present");
+ }
+
+ @Order(8)
+ @Test
+ void testDeleteRelease2() throws IOException, ParseException {
+ assertNotNull(releaseUid2, "Release UID should be available for deletion");
+
+ Response response = stack.releases(releaseUid2).delete().execute();
+
+ assertTrue(response.isSuccessful(), "Release deletion should be successful");
+
+ String responseString = response.body().string();
+ JSONObject responseObject = (JSONObject) parser.parse(responseString);
+
+ assertEquals("Release deleted successfully.", responseObject.get("notice"), "Success notice should be present");
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/com/contentstack/cms/stack/ReleaseItemAPITest.java b/src/test/java/com/contentstack/cms/stack/ReleaseItemAPITest.java
new file mode 100644
index 00000000..5a6c3c1b
--- /dev/null
+++ b/src/test/java/com/contentstack/cms/stack/ReleaseItemAPITest.java
@@ -0,0 +1,189 @@
+package com.contentstack.cms.stack;
+
+import com.contentstack.cms.TestClient;
+import com.contentstack.cms.core.Util;
+import okhttp3.Request;
+import org.json.simple.JSONArray;
+import org.json.simple.JSONObject;
+import org.junit.jupiter.api.*;
+
+import java.util.HashMap;
+
+@Tag("unit")
+@TestMethodOrder(MethodOrderer.OrderAnnotation.class)
+class ReleaseItemAPITest {
+
+ protected static String API_KEY = TestClient.API_KEY;
+ protected static String MANAGEMENT_TOKEN = TestClient.MANAGEMENT_TOKEN;
+ protected static String RELEASE_UID = "test_release_uid";
+ protected static Stack stack;
+ protected static ReleaseItem releaseItem;
+
+ @BeforeAll
+ static void setup() {
+ HashMap headers = new HashMap<>();
+ headers.put(Util.API_KEY, API_KEY);
+ headers.put(Util.AUTHORIZATION, MANAGEMENT_TOKEN);
+ stack = TestClient.getStack(); // Remove the "Stack" type declaration to use the class field
+ releaseItem = stack.releases(RELEASE_UID).item();
+ releaseItem.addHeader("testHeader", "testValue");
+ }
+
+ @Test
+ @Order(1)
+ void testFind() {
+ releaseItem.addParam("include_count", "true");
+ Request request = releaseItem.find().request();
+
+ Assertions.assertEquals("GET", request.method());
+ Assertions.assertTrue(request.url().isHttps());
+ Assertions.assertEquals("api.contentstack.io", request.url().host());
+ Assertions.assertTrue(request.url().pathSegments().contains("items"));
+ Assertions.assertTrue(request.url().toString().contains(RELEASE_UID));
+ Assertions.assertTrue(request.url().toString().contains("include_count=true"));
+ }
+
+ @Test
+ @Order(2)
+ void testCreate() {
+ // Prepare test request body
+ JSONObject requestBody = new JSONObject();
+ JSONObject item = new JSONObject();
+ item.put("uid", "entry123");
+ item.put("content_type_uid", "blog");
+ item.put("locale", "en-us");
+ item.put("version", 1);
+ requestBody.put("item", item);
+
+ Request request = releaseItem.create(requestBody).request();
+
+ Assertions.assertEquals("POST", request.method());
+ Assertions.assertTrue(request.url().isHttps());
+ Assertions.assertTrue(request.url().pathSegments().contains("item"));
+ Assertions.assertTrue(request.url().toString().contains(RELEASE_UID));
+ Assertions.assertNotNull(request.body());
+ }
+
+ @Test
+ @Order(3)
+ void testCreateMultiple() {
+ // Prepare test request body for multiple items
+ JSONObject requestBody = new JSONObject();
+ JSONArray items = new JSONArray();
+
+ JSONObject item1 = new JSONObject();
+ item1.put("uid", "entry123");
+ item1.put("content_type_uid", "blog");
+ item1.put("locale", "en-us");
+
+ JSONObject item2 = new JSONObject();
+ item2.put("uid", "asset456");
+ item2.put("action", "publish");
+
+ items.add(item1);
+ items.add(item2);
+ requestBody.put("items", items);
+
+ // Add bulk parameter
+ releaseItem.addParam("bulk", true);
+
+ Request request = releaseItem.createMultiple(requestBody).request();
+
+ Assertions.assertEquals("POST", request.method());
+ Assertions.assertTrue(request.url().isHttps());
+ Assertions.assertTrue(request.url().toString().contains(RELEASE_UID));
+ Assertions.assertTrue(request.url().toString().contains("items"));
+ Assertions.assertTrue(request.url().toString().contains("bulk=true"));
+ Assertions.assertNotNull(request.body());
+ }
+
+ @Test
+ @Order(4)
+ void testUpdate() {
+ Request request = releaseItem.update(new JSONObject()).request();
+
+ Assertions.assertEquals("PUT", request.method());
+ Assertions.assertTrue(request.url().isHttps());
+ Assertions.assertTrue(request.url().toString().contains(RELEASE_UID));
+
+ Assertions.assertNotNull(request.body());
+ }
+
+ @Test
+ @Order(5)
+ void testDelete() {
+ Request request = releaseItem.delete().request();
+
+ Assertions.assertEquals("DELETE", request.method());
+ Assertions.assertTrue(request.url().isHttps());
+ Assertions.assertTrue(request.url().toString().contains(RELEASE_UID));
+ Assertions.assertTrue(request.url().pathSegments().contains("items"));
+ }
+
+ @Test
+ @Order(6)
+ void testDeleteReleaseItems() {
+
+ Request request = releaseItem.deleteReleaseItems(new JSONObject()).request();
+
+ Assertions.assertEquals("DELETE", request.method());
+ Assertions.assertTrue(request.url().isHttps());
+ Assertions.assertTrue(request.url().toString().contains(RELEASE_UID));
+ Assertions.assertTrue(request.url().pathSegments().contains("items"));
+ Assertions.assertNotNull(request.body());
+ }
+
+ @Test
+ @Order(7)
+ void testDeleteReleaseItem() {
+
+ Request request = releaseItem.deleteReleaseItem(new JSONObject()).request();
+
+ Assertions.assertEquals("DELETE", request.method());
+ Assertions.assertTrue(request.url().isHttps());
+ Assertions.assertTrue(request.url().toString().contains(RELEASE_UID));
+ Assertions.assertTrue(request.url().pathSegments().contains("item"));
+ Assertions.assertNotNull(request.body());
+ }
+
+ @Test
+ @Order(8)
+ void testMove() {
+ Request request = releaseItem.move(new JSONObject()).request();
+
+ Assertions.assertEquals("POST", request.method());
+ Assertions.assertTrue(request.url().isHttps());
+ Assertions.assertTrue(request.url().toString().contains(RELEASE_UID));
+ Assertions.assertTrue(request.url().pathSegments().contains("move"));
+ Assertions.assertNotNull(request.body());
+
+ // Verify release_version header was added
+ // Assertions.assertEquals("2.0", Objects.requireNonNull(request.headers().get("release_version")));
+ }
+
+ @Test
+ @Order(9)
+ void testParamsManagement() {
+ releaseItem.clearParams();
+ releaseItem.addParam("test_key", "test_value");
+
+ Request request = releaseItem.find().request();
+
+ Assertions.assertTrue(request.url().toString().contains("test_key=test_value"));
+
+ releaseItem.removeParam("test_key");
+ request = releaseItem.find().request();
+
+ Assertions.assertFalse(request.url().toString().contains("test_key=test_value"));
+ }
+
+ @Test
+ @Order(10)
+ void testHeadersManagement() {
+ releaseItem.addHeader("custom_header", "custom_value");
+
+ Request request = releaseItem.find().request();
+
+ Assertions.assertEquals("custom_value", request.headers().get("custom_header"));
+ }
+}
\ No newline at end of file
diff --git a/src/test/java/com/contentstack/cms/stack/ReleaseUnitTest.java b/src/test/java/com/contentstack/cms/stack/ReleaseUnitTest.java
index 95bd0146..6250085a 100644
--- a/src/test/java/com/contentstack/cms/stack/ReleaseUnitTest.java
+++ b/src/test/java/com/contentstack/cms/stack/ReleaseUnitTest.java
@@ -48,7 +48,7 @@ static void setup() {
@Order(1)
void allReleaseHeaders() {
release.addHeader("Content-Type", "application/json");
- Assertions.assertEquals(1, release.headers.size());
+ Assertions.assertEquals(3, release.headers.size());
}
@Test
@@ -77,7 +77,7 @@ void allReleaseParamsWithSizeMax() {
@Order(5)
void releaseQueryParams() {
Request request = release.find().request();
- Assertions.assertEquals(1, request.headers().names().size());
+ Assertions.assertEquals(3, request.headers().names().size());
Assertions.assertEquals("GET", request.method());
Assertions.assertTrue(request.url().isHttps());
Assertions.assertEquals("api.contentstack.io", request.url().host());
@@ -94,7 +94,7 @@ void fetchSingleUrl() {
release.addParam("include_rules", true);
release.addParam("include_permissions", true);
Request request = release.fetch().request();
- Assertions.assertEquals(1, request.headers().names().size());
+ Assertions.assertEquals(3, request.headers().names().size());
Assertions.assertEquals("GET", request.method());
Assertions.assertTrue(request.url().isHttps());
Assertions.assertEquals("api.contentstack.io", request.url().host());
@@ -108,7 +108,7 @@ void fetchSingleUrl() {
@Order(7)
void createRelease() {
Request request = release.create(body).request();
- Assertions.assertEquals(0, request.headers().names().size());
+ Assertions.assertEquals(2, request.headers().names().size());
Assertions.assertEquals("POST", request.method());
Assertions.assertTrue(request.url().isHttps());
Assertions.assertEquals("api.contentstack.io", request.url().host());
@@ -123,7 +123,7 @@ void createRelease() {
@Order(8)
void updateRelease() {
Request request = release.update(body).request();
- Assertions.assertEquals(0, request.headers().names().size());
+ Assertions.assertEquals(2, request.headers().names().size());
Assertions.assertEquals("PUT", request.method());
Assertions.assertTrue(request.url().isHttps());
Assertions.assertEquals("api.contentstack.io", request.url().host());
@@ -138,7 +138,7 @@ void updateRelease() {
@Order(9)
void deleteRelease() {
Request request = release.delete().request();
- Assertions.assertEquals(1, request.headers().names().size());
+ Assertions.assertEquals(3, request.headers().names().size());
Assertions.assertEquals("DELETE", request.method());
Assertions.assertTrue(request.url().isHttps());
Assertions.assertEquals("api.contentstack.io", request.url().host());
@@ -153,7 +153,7 @@ void deleteRelease() {
@Order(10)
void getReleaseItems() {
Request request = release.item().find().request();
- Assertions.assertEquals(0, request.headers().names().size());
+ Assertions.assertEquals(3, request.headers().names().size());
Assertions.assertEquals("GET", request.method());
Assertions.assertTrue(request.url().isHttps());
Assertions.assertEquals("api.contentstack.io", request.url().host());
@@ -167,7 +167,7 @@ void getReleaseItems() {
@Order(10)
void createItemRelease() {
Request request = release.item().create(body).request();
- Assertions.assertEquals(0, request.headers().names().size());
+ Assertions.assertEquals(2, request.headers().names().size());
Assertions.assertEquals("POST", request.method());
Assertions.assertTrue(request.url().isHttps());
Assertions.assertEquals("api.contentstack.io", request.url().host());
@@ -181,7 +181,7 @@ void createItemRelease() {
@Order(10)
void createMultipleReleaseItems() {
Request request = release.item().createMultiple(body).request();
- Assertions.assertEquals(0, request.headers().names().size());
+ Assertions.assertEquals(2, request.headers().names().size());
Assertions.assertEquals("POST", request.method());
Assertions.assertTrue(request.url().isHttps());
Assertions.assertEquals("api.contentstack.io", request.url().host());
@@ -195,7 +195,7 @@ void createMultipleReleaseItems() {
@Order(10)
void updateReleaseItems() {
Request request = release.item().update(body).request();
- Assertions.assertEquals(0, request.headers().names().size());
+ Assertions.assertEquals(2, request.headers().names().size());
Assertions.assertEquals("PUT", request.method());
Assertions.assertTrue(request.url().isHttps());
Assertions.assertEquals("api.contentstack.io", request.url().host());
@@ -209,7 +209,7 @@ void updateReleaseItems() {
@Order(10)
void deleteReleaseItems() {
Request request = release.item().delete().request();
- Assertions.assertEquals(0, request.headers().names().size());
+ Assertions.assertEquals(3, request.headers().names().size());
Assertions.assertEquals("DELETE", request.method());
Assertions.assertTrue(request.url().isHttps());
Assertions.assertEquals("api.contentstack.io", request.url().host());
diff --git a/src/test/resources/releases/create_release1.json b/src/test/resources/releases/create_release1.json
new file mode 100644
index 00000000..e5723bb1
--- /dev/null
+++ b/src/test/resources/releases/create_release1.json
@@ -0,0 +1,9 @@
+{
+ "release": {
+ "name": "First release",
+ "description": "Adding release date",
+ "locked": false,
+ "archived": false
+ }
+}
+
diff --git a/src/test/resources/releases/create_release2.json b/src/test/resources/releases/create_release2.json
new file mode 100644
index 00000000..55424f61
--- /dev/null
+++ b/src/test/resources/releases/create_release2.json
@@ -0,0 +1,8 @@
+{
+ "release": {
+ "name": "Second release",
+ "description": "Adding release date",
+ "locked": false,
+ "archived": false
+ }
+}
diff --git a/src/test/resources/releases/update_release1.json b/src/test/resources/releases/update_release1.json
new file mode 100644
index 00000000..523cd8da
--- /dev/null
+++ b/src/test/resources/releases/update_release1.json
@@ -0,0 +1,7 @@
+{
+ "release": {
+ "name": "First release update",
+ "description": "Adding release date"
+ }
+}
+