package com.box.sdk; import java.text.ParseException; import java.util.Date; import org.junit.Assert; import org.junit.Test; import org.junit.experimental.categories.Category; import com.eclipsesource.json.JsonObject; /** * {@link BoxRetentionPolicyAssignment} related unit tests. */ public class BoxRetentionPolicyAssignmentTest { /** * Unit test for {@link BoxRetentionPolicyAssignment#createAssignmentToEnterprise(BoxAPIConnection, String)} */ @Test @Category(UnitTest.class) public void testCreateAssignmentToEnterpriseSendsCorrectJson() { final String id = "0"; final String type = "enterprise"; BoxAPIConnection api = new BoxAPIConnection(""); api.setRequestInterceptor(new JSONRequestInterceptor() { @Override protected BoxAPIResponse onJSONRequest(BoxJSONRequest request, JsonObject json) { Assert.assertEquals("https://api.box.com/2.0/retention_policy_assignments", request.getUrl().toString()); Assert.assertEquals(id, json.get("policy_id").asString()); Assert.assertEquals(type, json.get("assign_to").asObject().get("type").asString()); return new BoxJSONResponse() { @Override public String getJSON() { return "{\"id\": \"0\"}"; } }; } }); BoxRetentionPolicyAssignment.createAssignmentToEnterprise(api, id); } /** * Unit test for {@link BoxRetentionPolicyAssignment#createAssignmentToFolder(BoxAPIConnection, String, String)} */ @Test @Category(UnitTest.class) public void testCreateAssignmentToFolderSendsCorrectJson() { final String id = "0"; final String type = "folder"; final String folderID = "1"; BoxAPIConnection api = new BoxAPIConnection(""); api.setRequestInterceptor(new JSONRequestInterceptor() { @Override protected BoxAPIResponse onJSONRequest(BoxJSONRequest request, JsonObject json) { Assert.assertEquals("https://api.box.com/2.0/retention_policy_assignments", request.getUrl().toString()); Assert.assertEquals(id, json.get("policy_id").asString()); Assert.assertEquals(type, json.get("assign_to").asObject().get("type").asString()); Assert.assertEquals(folderID, json.get("assign_to").asObject().get("id").asString()); return new BoxJSONResponse() { @Override public String getJSON() { return "{\"id\": \"0\"}"; } }; } }); BoxRetentionPolicyAssignment.createAssignmentToFolder(api, id, folderID); } /** * Unit test for {@link BoxRetentionPolicyAssignment#createAssignmentToFolder(BoxAPIConnection, String, String)} */ @Test @Category(UnitTest.class) public void testCreateAssignmentParseAllFieldsCorrectly() throws ParseException { final String id = "3233225"; final String policyID = "32131"; final String policyName = "TaxDocuments"; final String assignedToType = "folder"; final String assignedToID = "99922219"; final String assignedByID = "123456789"; final String assignedByName = "Sean"; final String assignedByLogin = "sean@box.com"; final Date assignedAt = BoxDateFormat.parse("2015-07-20T14:28:09-07:00"); final JsonObject fakeJSONResponse = JsonObject.readFrom("{ \n" + " \"type\": \"retention_policy_assignment\", \n" + " \"id\": \"3233225\", \n" + " \"retention_policy\": { \n" + " \"type\": \"retention_policy\", \n" + " \"id\": \"32131\", \n" + " \"policy_name\": \"TaxDocuments\" \n" + " },\n" + " \"assigned_to\": {\n" + " \"type\": \"folder\", \n" + " \"id\": \"99922219\" \n" + " }, \n" + " \"assigned_by\": { \n" + " \"type\": \"user\", \n" + " \"id\": \"123456789\", \n" + " \"name\": \"Sean\", \n" + " \"login\": \"sean@box.com\" \n" + " }, \n" + " \"assigned_at\": \"2015-07-20T14:28:09-07:00\"\n" + "}"); BoxAPIConnection api = new BoxAPIConnection(""); api.setRequestInterceptor(JSONRequestInterceptor.respondWith(fakeJSONResponse)); BoxRetentionPolicyAssignment.Info info = BoxRetentionPolicyAssignment.createAssignmentToFolder(api, policyID, assignedToID); Assert.assertEquals(id, info.getID()); Assert.assertEquals(policyID, info.getRetentionPolicy().getID()); Assert.assertEquals(policyName, info.getRetentionPolicy().getPolicyName()); Assert.assertEquals(assignedToType, info.getAssignedToType()); Assert.assertEquals(assignedToID, info.getAssignedToID()); Assert.assertEquals(assignedByID, info.getAssignedBy().getID()); Assert.assertEquals(assignedByName, info.getAssignedBy().getName()); Assert.assertEquals(assignedByLogin, info.getAssignedBy().getLogin()); Assert.assertEquals(assignedAt, info.getAssignedAt()); } /** * Unit test for {@link BoxRetentionPolicyAssignment#getInfo(String...)} */ @Test @Category(UnitTest.class) public void testGetInfoSendsCorrectRequest() { BoxAPIConnection api = new BoxAPIConnection(""); api.setRequestInterceptor(new RequestInterceptor() { @Override public BoxAPIResponse onRequest(BoxAPIRequest request) { Assert.assertEquals("https://api.box.com/2.0/retention_policy_assignments/0?fields=assigned_to", request.getUrl().toString()); return new BoxJSONResponse() { @Override public String getJSON() { return "{\"id\": \"0\"}"; } }; } }); BoxRetentionPolicyAssignment assignment = new BoxRetentionPolicyAssignment(api, "0"); assignment.getInfo("assigned_to"); } /** * Unit test for {@link BoxRetentionPolicyAssignment#getInfo(String...)} */ @Test @Category(UnitTest.class) public void testGetInfoParseAllFieldsCorrectly() throws ParseException { final String id = "3233225"; final String policyID = "32131"; final String policyName = "TaxDocuments"; final String assignedToType = "folder"; final String assignedToID = "99922219"; final String assignedByID = "123456789"; final String assignedByName = "Sean"; final String assignedByLogin = "sean@box.com"; final Date assignedAt = BoxDateFormat.parse("2015-07-20T14:28:09-07:00"); final JsonObject fakeJSONResponse = JsonObject.readFrom("{ \n" + " \"type\": \"retention_policy_assignment\", \n" + " \"id\": \"3233225\", \n" + " \"retention_policy\": { \n" + " \"type\": \"retention_policy\", \n" + " \"id\": \"32131\", \n" + " \"policy_name\": \"TaxDocuments\"\n" + " }, \n" + " \"assigned_to\": { \n" + " \"type\": \"folder\", \n" + " \"id\": \"99922219\" \n" + " }, \n" + " \"assigned_by\": { \n" + " \"type\": \"user\", \n" + " \"id\": \"123456789\", \n" + " \"name\": \"Sean\", \n" + " \"login\": \"sean@box.com\" \n" + " }, \n" + " \"assigned_at\": \"2015-07-20T14:28:09-07:00\" \n" + "}"); BoxAPIConnection api = new BoxAPIConnection(""); api.setRequestInterceptor(JSONRequestInterceptor.respondWith(fakeJSONResponse)); BoxRetentionPolicyAssignment assignment = new BoxRetentionPolicyAssignment(api, id); BoxRetentionPolicyAssignment.Info info = assignment.getInfo(); Assert.assertEquals(id, info.getID()); Assert.assertEquals(policyID, info.getRetentionPolicy().getID()); Assert.assertEquals(policyName, info.getRetentionPolicy().getPolicyName()); Assert.assertEquals(assignedToType, info.getAssignedToType()); Assert.assertEquals(assignedToID, info.getAssignedToID()); Assert.assertEquals(assignedByID, info.getAssignedBy().getID()); Assert.assertEquals(assignedByName, info.getAssignedBy().getName()); Assert.assertEquals(assignedByLogin, info.getAssignedBy().getLogin()); Assert.assertEquals(assignedAt, info.getAssignedAt()); } }