package com.box.sdk; import java.util.Date; import java.util.Iterator; import org.junit.Assert; import org.junit.Test; import org.junit.experimental.categories.Category; import com.eclipsesource.json.JsonObject; /** * {@link BoxFileVersionLegalHoldTest} related unit tests. */ public class BoxFileVersionLegalHoldTest { /** * Unit test for {@link BoxFileVersionLegalHold#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/file_version_legal_holds/0?fields=file", request.getUrl().toString()); return new BoxJSONResponse() { @Override public String getJSON() { return "{\"id\": \"0\"}"; } }; } }); BoxFileVersionLegalHold hold = new BoxFileVersionLegalHold(api, "0"); hold.getInfo("file"); } /** * Unit test for {@link BoxFileVersionLegalHold#getInfo(String...)} */ @Test @Category(UnitTest.class) public void testGetInfoParseAllFieldsCorrectly() { final String id = "240997"; final String fileVersionID = "141649417"; final String fileID = "5025122933"; final String fileEtag = "1"; final String firstPolicyID = "255473"; final String secondPolicyID = "255617"; final Date deletedAt = null; final JsonObject fakeJSONResponse = JsonObject.readFrom("{\n" + " \"type\": \"legal_hold\",\n" + " \"id\": \"240997\",\n" + " \"file_version\": {\n" + " \"type\": \"file_version\",\n" + " \"id\": \"141649417\"\n" + " },\n" + " \"file\": {\n" + " \"type\": \"file\",\n" + " \"id\": \"5025122933\",\n" + " \"etag\": \"1\"\n" + " },\n" + " \"legal_hold_policy_assignments\": [\n" + " {\n" + " \"type\": \"legal_hold_policy_assignment\",\n" + " \"id\": \"255473\"\n" + " },\n" + " {\n" + " \"type\": \"legal_hold_policy_assignment\",\n" + " \"id\": \"255617\"\n" + " }\n" + " ],\n" + " \"deleted_at\": null\n" + "}"); BoxAPIConnection api = new BoxAPIConnection(""); api.setRequestInterceptor(JSONRequestInterceptor.respondWith(fakeJSONResponse)); BoxFileVersionLegalHold hold = new BoxFileVersionLegalHold(api, id); BoxFileVersionLegalHold.Info info = hold.getInfo(); Assert.assertEquals(id, info.getID()); Assert.assertEquals(fileVersionID, info.getFileVersion().getID()); Assert.assertEquals(fileID, info.getFileVersion().getFileID()); Assert.assertEquals(fileID, info.getFile().getID()); Assert.assertEquals(fileEtag, info.getFile().getEtag()); Assert.assertEquals(deletedAt, info.getDeletedAt()); Iterator<BoxLegalHoldAssignment.Info> iterator = info.getAssignments().iterator(); Assert.assertEquals(firstPolicyID, iterator.next().getID()); Assert.assertEquals(secondPolicyID, iterator.next().getID()); Assert.assertEquals(false, iterator.hasNext()); } }