|
11 | 11 |
|
12 | 12 | import org.json.simple.JSONArray;
|
13 | 13 | import org.json.simple.JSONObject;
|
| 14 | +import org.json.simple.parser.JSONParser; |
| 15 | +import org.json.simple.parser.ParseException; |
14 | 16 | import org.junit.jupiter.api.*;
|
15 | 17 |
|
16 | 18 | import java.io.IOException;
|
@@ -818,4 +820,96 @@ void queryFiltersOnTaxonomy() {
|
818 | 820 |
|
819 | 821 | }
|
820 | 822 |
|
| 823 | + @Test |
| 824 | + void testSetWorkflowStage() throws ParseException, IOException { |
| 825 | + String workflowStagePayload = "{\n" + |
| 826 | + " \"workflow\": {\n" + |
| 827 | + " \"workflow_stage\": {\n" + |
| 828 | + " \"uid\": \"uid\",\n" + |
| 829 | + " \"assigned_by_roles\": [{ \"uid\": \"uid\", \"name\": \"Content Manager\" }],\n" + |
| 830 | + " \"due_date\": \"Thu Feb 06 2025\",\n" + |
| 831 | + " \"comment\": \"Review the entry\",\n" + |
| 832 | + " \"notify\": true,\n" + |
| 833 | + " \"assigned_to\": [{ \"uid\": \"user_uid\", \"name\": \"name\", \"email\": \"mail.com\" }]\n" + |
| 834 | + " }\n" + |
| 835 | + " }\n" + |
| 836 | + "}"; |
| 837 | + JSONParser parser = new JSONParser(); |
| 838 | + JSONObject body = (JSONObject) parser.parse(workflowStagePayload); |
| 839 | + Entry entry1 = TestClient.getClient().stack(API_KEY,MANAGEMENT_TOKEN).contentType("author").entry("entry_uid"); |
| 840 | + Request request = entry1.setWorkflowStage(body).request(); |
| 841 | + Assertions.assertNotNull(request); |
| 842 | + Assertions.assertTrue(request.url().isHttps()); |
| 843 | + Assertions.assertEquals("api.contentstack.io", request.url().host()); |
| 844 | + Assertions.assertEquals(6, request.url().pathSegments().size()); |
| 845 | + Assertions.assertEquals("v3", request.url().pathSegments().get(0)); |
| 846 | + Assertions.assertEquals("content_types", request.url().pathSegments().get(1)); |
| 847 | + Assertions.assertEquals("author", request.url().pathSegments().get(2)); |
| 848 | + Assertions.assertEquals("entries", request.url().pathSegments().get(3)); |
| 849 | + Assertions.assertEquals("entry_uid", request.url().pathSegments().get(4)); |
| 850 | + Assertions.assertEquals("workflow", request.url().pathSegments().get(5)); |
| 851 | + Assertions.assertEquals("https://api.contentstack.io/v3/content_types/author/entries/entry_uid/workflow", request.url().toString()); |
| 852 | + } |
| 853 | + |
| 854 | + @Test |
| 855 | + void setWorkflowStage_VerifyQueryParams() throws ParseException { |
| 856 | + String payload = "{ \"workflow\": { \"workflow_stage\": { \"uid\": \"stage_uid\" } } }"; |
| 857 | + JSONParser parser = new JSONParser(); |
| 858 | + JSONObject body = (JSONObject) parser.parse(payload); |
| 859 | + Entry entry = TestClient.getClient().stack(API_KEY, MANAGEMENT_TOKEN).contentType("author").entry("entry_uid"); |
| 860 | + entry.addParam("locale", "en-us"); |
| 861 | + Request request = entry.setWorkflowStage(body).request(); |
| 862 | + Assertions.assertNotNull(request.url().encodedQuery()); |
| 863 | + Assertions.assertEquals("locale=en-us", request.url().encodedQuery()); |
| 864 | + Assertions.assertEquals("https://api.contentstack.io/v3/content_types/author/entries/entry_uid/workflow?locale=en-us", request.url().toString()); |
| 865 | + } |
| 866 | + |
| 867 | + @Test |
| 868 | + void testPublishRequest_ValidRequest() throws ParseException { |
| 869 | + Contentstack contentstack = new Contentstack.Builder().setAuthtoken(TestClient.AUTHTOKEN).build(); |
| 870 | + Stack stack = contentstack.stack(TestClient.API_KEY, TestClient.MANAGEMENT_TOKEN); |
| 871 | + String publishRequestPayload = "{\n" + |
| 872 | + " \"workflow\": {\n" + |
| 873 | + " \"publishing_rule\": {\n" + |
| 874 | + " \"uid\": \"rule_uid\",\n" + |
| 875 | + " \"action\": \"publish\",\n" + |
| 876 | + " \"status\": 1,\n" + |
| 877 | + " \"notify\": true,\n" + |
| 878 | + " \"comment\": \"Approve this entry.\"\n" + |
| 879 | + " }\n" + |
| 880 | + " }\n" + |
| 881 | + "}"; |
| 882 | + JSONParser parser = new JSONParser(); |
| 883 | + JSONObject body = (JSONObject) parser.parse(publishRequestPayload); |
| 884 | + Request request = stack.contentType("author").entry("entry_uid").publishRequest(body).request(); |
| 885 | + |
| 886 | + Assertions.assertEquals("POST", request.method()); |
| 887 | + Assertions.assertEquals("https", request.url().scheme()); |
| 888 | + Assertions.assertEquals("api.contentstack.io", request.url().host()); |
| 889 | + Assertions.assertEquals("v3", request.url().pathSegments().get(0)); |
| 890 | + Assertions.assertEquals("content_types", request.url().pathSegments().get(1)); |
| 891 | + Assertions.assertEquals("author", request.url().pathSegments().get(2)); |
| 892 | + Assertions.assertEquals("entries", request.url().pathSegments().get(3)); |
| 893 | + Assertions.assertEquals("entry_uid", request.url().pathSegments().get(4)); |
| 894 | + Assertions.assertEquals("workflow", request.url().pathSegments().get(5)); |
| 895 | + Assertions.assertTrue(request.headers().names().contains("authorization")); |
| 896 | + Assertions.assertTrue(request.headers().names().contains("api_key")); |
| 897 | + } |
| 898 | + |
| 899 | + @Test |
| 900 | + void testPublishRequest_InvalidRequestBody() throws ParseException, IOException { |
| 901 | + Contentstack contentstack = new Contentstack.Builder().setAuthtoken(TestClient.AUTHTOKEN).build(); |
| 902 | + Stack stack = contentstack.stack(TestClient.API_KEY, TestClient.MANAGEMENT_TOKEN); |
| 903 | + String invalidPayload = "{ \"invalid_field\": \"invalid_value\" }"; |
| 904 | + JSONParser parser = new JSONParser(); |
| 905 | + JSONObject body = (JSONObject) parser.parse(invalidPayload); |
| 906 | + Request request = stack.contentType("author").entry("entry_uid").publishRequest(body).request(); |
| 907 | + Assertions.assertEquals("POST", request.method()); |
| 908 | + Assertions.assertTrue(request.headers().names().contains("authorization")); |
| 909 | + Assertions.assertTrue(request.headers().names().contains("api_key")); |
| 910 | + Assertions.assertEquals("https", request.url().scheme()); |
| 911 | + Assertions.assertEquals("api.contentstack.io", request.url().host()); |
| 912 | + Assertions.assertEquals("v3", request.url().pathSegments().get(0)); |
| 913 | + } |
| 914 | + |
821 | 915 | }
|
0 commit comments