import com.google.gson.Gson;
import com.instructure.canvasapi.model.AccountDomain;
import com.instructure.canvasapi.model.FileFolder;
import com.instructure.canvasapi.utilities.CanvasRestAdapter;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.annotation.Config;
import junit.framework.Assert;
@Config(sdk = 17)
@RunWith(RobolectricGradleTestRunner.class)
public class FileFolderUnitTest extends Assert {
@Test
public void testFiles(){
Gson gson = CanvasRestAdapter.getGSONParser();
FileFolder[] files = gson.fromJson(filesJSON, FileFolder[].class);
assertNotNull(files);
assertEquals(3, files.length);
for(FileFolder file : files){
testCommonAttributes(file);
assertNotNull(file.getFolderId());
assertNotNull(file.getSize());
assertNotNull(file.getContentType());
assertNotNull(file.getUrl());
assertNotNull(file.getDisplayName());
assertNotNull(file.getThumbnailUrl());
assertNotNull(file.getLockInfo().getUnlockedAt());
}
}
@Test
public void testFolders(){
Gson gson = CanvasRestAdapter.getGSONParser();
FileFolder[] folders = gson.fromJson(foldersJSON, FileFolder[].class);
assertNotNull(folders);
assertEquals(3, folders.length);
for(FileFolder file : folders){
testCommonAttributes(file);
assertNotNull(file.getParentFolderId());
assertNotNull(file.getContextId());
assertNotNull(file.getPosition());
assertNotNull(file.getFolders_count());
assertNotNull(file.getContextType());
assertNotNull(file.getName());
assertNotNull(file.getFoldersUrl());
assertNotNull(file.getFilesUrl());
assertNotNull(file.getFullName());
}
}
public static void testCommonAttributes(FileFolder fileFolder){
assertNotNull(fileFolder.getId());
assertNotNull(fileFolder.getCreatedAt());
assertNotNull(fileFolder.getUpdatedAt());
assertNotNull(fileFolder.getUnlockAt());
assertNotNull(fileFolder.getLockAt());
assertNotNull(fileFolder.isLocked());
assertNotNull(fileFolder.isHidden());
assertNotNull(fileFolder.isLockedForUser());
assertNotNull(fileFolder.isHiddenForUser());
}
public static final String filesJSON = "["
+"{\"id\": 63383591,"
+"\"folder_id\": 2873264,"
+"\"content-type\": \"video/mp4\","
+"\"display_name\": \"12_limits_continuity.mp4\","
+"\"url\": \"https://mobiledev.instructure.com/files/63383591/download?download_frd=1\","
+"\"size\": 29739338,"
+"\"created_at\": \"2015-01-22T22:41:01Z\","
+"\"updated_at\": \"2015-03-10T21:12:01Z\","
+"\"unlock_at\": \"2015-03-10T21:12:01Z\","
+"\"locked\": false,"
+"\"hidden\": false,"
+"\"lock_at\": \"2015-01-22T22:41:01Z\","
+"\"hidden_for_user\": false,"
+"\"thumbnail_url\": \"https://nv.instructuremedia.com/p/9/thumbnail/entry_id/m-5rBaCRyiyvBByuS72NS5XtuXpdioHAku/width/140/height/100/bgcolor/ffffff/type/2/vid_sec/5\","
+"\"locked_for_user\": false,"
+"\"lock_info\":{"
+"\"asset_string\": \"attachment_63383591\","
+"\"unlock_at\": \"2015-03-26T06:00:00Z\"}"
+"},"
+"{\"id\": 46772199,"
+"\"folder_id\": 4815146,"
+"\"content-type\": \"image/jpeg\","
+"\"display_name\": \"1387235693988.jpg\","
+"\"url\": \"https://mobiledev.instructure.com/files/46772199/download?download_frd=1\","
+"\"size\": 16152,"
+"\"created_at\": \"2014-01-20T20:47:21Z\","
+"\"updated_at\": \"2015-01-08T10:01:49Z\","
+"\"unlock_at\": \"2015-03-10T21:12:01Z\","
+"\"locked\": false,"
+"\"hidden\": false,"
+"\"lock_at\": \"2015-01-22T22:41:01Z\","
+"\"hidden_for_user\": false,"
+"\"thumbnail_url\": \"https://instructure-uploads.s3.amazonaws.com/thumbnails/46772199/1387235693988_thumb.jpg?AWSAccessKeyId=AKIAJFNFXH2V2O7RPCAA&Expires=1427302233&Signature=eQQA4I7YMn%2BENlC7qlXk1UNms0c%3D\","
+"\"locked_for_user\": false,"
+"\"lock_info\":{"
+"\"asset_string\": \"attachment_63383591\","
+"\"unlock_at\": \"2015-03-26T06:00:00Z\"}"
+"},"
+"{\"id\": 49303928,"
+"\"folder_id\": 4815146,"
+"\"content-type\": \"image/jpeg\","
+"\"display_name\": \"1393530686715-1.jpg\","
+"\"url\": \"https://mobiledev.instructure.com/files/49303928/download?download_frd=1\","
+"\"size\": 1688752,"
+"\"created_at\": \"2014-04-07T16:23:59Z\","
+"\"updated_at\": \"2015-01-08T11:08:04Z\","
+"\"unlock_at\": \"2015-03-10T21:12:01Z\","
+"\"locked\": false,"
+"\"hidden\": false,"
+"\"lock_at\": \"2015-01-22T22:41:01Z\","
+"\"hidden_for_user\": false,"
+"\"thumbnail_url\": \"https://instructure-uploads.s3.amazonaws.com/thumbnails/49303928/1393530686715_thumb.jpg?AWSAccessKeyId=AKIAJFNFXH2V2O7RPCAA&Expires=1427302233&Signature=9qXqCnaFcqNHqZ08KDmxZ3alWhA%3D\","
+"\"locked_for_user\": false,"
+"\"lock_info\":{"
+"\"asset_string\": \"attachment_63383591\","
+"\"unlock_at\": \"2015-03-26T06:00:00Z\"}"
+"}"
+"]";
public static final String foldersJSON = "["
+"{\"context_id\": 833052,"
+"\"context_type\": \"Course\","
+"\"created_at\": \"2012-10-06T00:05:33Z\","
+"\"full_name\": \"course dsfsd\","
+"\"id\": 2873264,"
+"\"lock_at\": \"2012-12-06T00:05:33Z\","
+"\"name\": \"course files\","
+"\"parent_folder_id\": 7151579,"
+"\"position\": 1,"
+"\"unlock_at\": \"2012-11-06T00:05:33Z\","
+"\"updated_at\": \"2012-10-06T00:05:33Z\","
+"\"locked\": false,"
+"\"folders_url\": \"https://panda.instructure.com/api/v1/folders/12345/folders\","
+"\"files_url\": \"https://panda.instructure.com/api/v1/folders/12345/files\","
+"\"files_count\": 11,"
+"\"folders_count\": 3,"
+"\"hidden\": false,"
+"\"locked_for_user\": false,"
+"\"hidden_for_user\": false},"
+"{\"context_id\": 833052,"
+"\"context_type\": \"Course\","
+"\"created_at\": \"2014-06-29T18:27:35Z\","
+"\"full_name\": \"course files/parental_guidance_photos/First Day of Class\","
+"\"id\": 7151597,"
+"\"lock_at\": \"2012-12-06T00:05:33Z\","
+"\"name\": \"First Day of Class\","
+"\"parent_folder_id\": 7151579,"
+"\"position\": 1,"
+"\"unlock_at\": \"2012-13-06T00:05:33Z\","
+"\"updated_at\": \"2014-06-29T18:27:35Z\","
+"\"locked\": false,"
+"\"folders_url\": \"https://panda.instructure.com/api/v1/folders/12345/folders\","
+"\"files_url\": \"https://panda.instructure.com/api/v1/folders/12345/files\","
+"\"files_count\": 7,"
+"\"folders_count\": 0,"
+"\"hidden\": false,"
+"\"locked_for_user\": false,"
+"\"hidden_for_user\": false},"
+"{\"context_id\": 833052,"
+"\"context_type\": \"Course\","
+"\"created_at\": \"2013-08-28T23:13:03Z\","
+"\"full_name\": \"course files/unfiled/Level 2\","
+"\"id\": 5703450,"
+"\"lock_at\": \"2012-13-06T00:05:33Z\","
+"\"name\": \"Level 2\","
+"\"parent_folder_id\": 4815146,"
+"\"position\": 1,"
+"\"unlock_at\": \"2012-12-06T00:05:33Z\","
+"\"updated_at\": \"2013-08-28T23:13:03Z\","
+"\"locked\": false,"
+"\"folders_url\": \"https://panda.instructure.com/api/v1/folders/12345/folders\","
+"\"files_url\": \"https://panda.instructure.com/api/v1/folders/12345/files\","
+"\"files_count\": 3,"
+"\"folders_count\": 1,"
+"\"hidden\": false,"
+"\"locked_for_user\": false,"
+"\"hidden_for_user\": false}"
+"]";
}