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 BoxFileVersion} related tests.
*/
public class BoxFileVersionTest {
/**
* Unit test for {@link BoxFileVersion#delete()}
*/
@Test
@Category(UnitTest.class)
public void testDeleteSendsCorrectRequest() {
BoxAPIConnection api = new BoxAPIConnection("");
api.setRequestInterceptor(new RequestInterceptor() {
@Override
public BoxAPIResponse onRequest(BoxAPIRequest request) {
Assert.assertEquals("https://api.box.com/2.0/files/0/versions/1",
request.getUrl().toString());
return new BoxJSONResponse() {
@Override
public String getJSON() {
return "{\"id\": \"0\"}";
}
};
}
});
BoxFile file = new BoxFile(api, "0");
BoxFileVersion version = new BoxFileVersion(api, new JsonObject().add("id", "1"), file.getID());
version.delete();
}
/**
* Unit test for {@link BoxFileVersion#promote()}
*/
@Test
@Category(UnitTest.class)
public void testPromoteSendsCorrectJSON() {
final String type = "file_version";
final String id = "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/files/0/versions/current", request.getUrl().toString());
Assert.assertEquals(type, json.get("type").asString());
Assert.assertEquals(id, json.get("id").asString());
return new BoxJSONResponse() {
@Override
public String getJSON() {
return "{\"id\": \"0\"}";
}
};
}
});
BoxFileVersion version = new BoxFileVersion(api, new JsonObject().add("id", "1"), "0");
version.promote();
}
/**
* Unit test for {@link BoxFileVersion#promote()}
*/
@Test
@Category(UnitTest.class)
public void testPromoteParseAllFieldsCorrectly() throws ParseException {
final String id = "871399";
final String sha1 = "12039d6dd9a7e6eefc78846802e";
final String name = "Stark Family Lineage.doc";
final long size = 11;
final Date createdAt = BoxDateFormat.parse("2013-11-20T13:20:50-08:00");
final Date modifiedAt = BoxDateFormat.parse("2013-11-20T13:26:48-08:00");
final String modifiedById = "13711334";
final String modifiedByName = "Eddard Stark";
final String modifiedByLogin = "ned@winterfell.com";
final JsonObject fakeJSONResponse = JsonObject.readFrom("{\n"
+ " \"type\": \"file_version\",\n"
+ " \"id\": \"871399\",\n"
+ " \"sha1\": \"12039d6dd9a7e6eefc78846802e\",\n"
+ " \"name\": \"Stark Family Lineage.doc\",\n"
+ " \"size\": 11,\n"
+ " \"created_at\": \"2013-11-20T13:20:50-08:00\",\n"
+ " \"modified_at\": \"2013-11-20T13:26:48-08:00\",\n"
+ " \"modified_by\": {\n"
+ " \"type\": \"user\",\n"
+ " \"id\": \"13711334\",\n"
+ " \"name\": \"Eddard Stark\",\n"
+ " \"login\": \"ned@winterfell.com\"\n"
+ " }\n"
+ "}");
BoxAPIConnection api = new BoxAPIConnection("");
api.setRequestInterceptor(JSONRequestInterceptor.respondWith(fakeJSONResponse));
BoxFileVersion version = new BoxFileVersion(api, new JsonObject().add("id", id), "0");
version.promote();
Assert.assertEquals(id, version.getID());
Assert.assertEquals(sha1, version.getSha1());
Assert.assertEquals(name, version.getName());
Assert.assertEquals(size, version.getSize());
Assert.assertEquals(createdAt, version.getCreatedAt());
Assert.assertEquals(modifiedAt, version.getModifiedAt());
Assert.assertEquals(modifiedById, version.getModifiedBy().getID());
Assert.assertEquals(modifiedByName, version.getModifiedBy().getName());
Assert.assertEquals(modifiedByLogin, version.getModifiedBy().getLogin());
}
}