import android.util.Log; import com.google.gson.Gson; import com.instructure.canvasapi.model.Course; import com.instructure.canvasapi.model.User; import com.instructure.canvasapi.utilities.CanvasRestAdapter; import junit.framework.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.annotation.Config; /** * Copyright (c) 2014 Instructure. All rights reserved. */ @Config(sdk = 17) @RunWith(RobolectricGradleTestRunner.class) public class CanvasContextPermissionUnitTest extends Assert { @Test public void testCoursePermissions(){ Gson gson = CanvasRestAdapter.getGSONParser(); Course course = gson.fromJson(coursePermissionJSON, Course.class); assertNotNull(course); assertNotNull(course.getPermissions()); assertTrue(course.canCreateDiscussion()); assertTrue(course.getPermissions().canCreateDiscussionTopic()); assertFalse(course.getPermissions().canUpdateAvatar()); assertFalse(course.getPermissions().canUpdateName()); } @Test public void testUserPermissions(){ Gson gson = CanvasRestAdapter.getGSONParser(); User user = gson.fromJson(userPermissionJSON, User.class); assertNotNull(user); assertNotNull(user.getPermissions()); assertFalse(user.getPermissions().canCreateDiscussionTopic()); assertTrue(user.canUpdateAvatar()); assertTrue(user.canUpdateName()); assertTrue(user.getPermissions().canUpdateAvatar()); assertTrue(user.getPermissions().canUpdateName()); } private static final String coursePermissionJSON = "{" +"\"account_id\": 992299," +"\"course_code\": \"Android\"," +"\"default_view\": \"wiki\"," +"\"enrollment_term_id\": 31142," +"\"id\": 8333052," +"\"is_public\": false," +"\"name\": \"Android Development\"," +"\"start_at\": \"2012-10-03T18:08:01Z\"," +"\"end_at\": \"2015-11-27T15:38:49Z\"," +"\"public_syllabus\": false," +"\"storage_quota_mb\": 500," +"\"is_public_to_auth_users\": false," +"\"hide_final_grades\": false," +"\"permissions\": {" +"\"create_discussion_topic\": true" +"}," +"\"apply_assignment_group_weights\": true," +"\"calendar\": {" +"\"ics\": \"https://mobiledev.instructure.com/feeds/calendars/fdsdfs.ics\"" +"}," +"\"sis_course_id\": null," +"\"integration_id\": null," +"\"enrollments\": [" +"{" +"\"type\": \"teacher\"," +"\"role\": \"TeacherEnrollment\"," +"\"role_id\": 2442," +"\"enrollment_state\": \"active\"" +"}" +"]," +"\"workflow_state\": \"available\"" +"}"; private static final String userPermissionJSON = "{" +"\"id\": 3432122," +"\"name\": \"Michael Jordan\"," +"\"sortable_name\": \"Jordan, Michael\"," +"\"short_name\": \"Michael Jordan\"," +"\"avatar_url\": \"https://pandadev.instructure.com/images/thumbnails/466822827/abcdefghh\"," +"\"locale\": null," +"\"permissions\": {" +"\"can_update_name\": true," +"\"can_update_avatar\": true" +"}" +"}"; }