import com.google.gson.Gson; import com.instructure.canvasapi.model.ModuleItem; import com.instructure.canvasapi.utilities.CanvasRestAdapter; import junit.framework.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.annotation.Config; @Config(sdk = 17) @RunWith(RobolectricGradleTestRunner.class) public class ModuleItemUnitTest extends Assert { @Test public void testModuleItem() { Gson gson = CanvasRestAdapter.getGSONParser(); ModuleItem[] moduleItems = gson.fromJson(moduleItemJSON, ModuleItem[].class); for (ModuleItem moduleItem : moduleItems){ assertTrue(moduleItem.getId() > 0); assertNotNull(moduleItem.getType()); assertNotNull(moduleItem.getTitle()); assertNotNull(moduleItem.getHtml_url()); assertNotNull(moduleItem.getUrl()); if(moduleItem.getCompletionRequirement() != null) { assertNotNull(moduleItem.getCompletionRequirement().getType()); } } } String moduleItemJSON = "[\n" + "{\n" + "\"id\": 9012239,\n" + "\"indent\": 0,\n" + "\"position\": 1,\n" + "\"title\": \"Android 101\",\n" + "\"type\": \"Assignment\",\n" + "\"module_id\": 1059720,\n" + "\"html_url\": \"https://mobiledev.instructure.com/courses/833052/modules/items/9012239\",\n" + "\"content_id\": 2241839,\n" + "\"url\": \"https://mobiledev.instructure.com/api/v1/courses/833052/assignments/2241839\",\n" + "\"completion_requirement\": {\n" + "\"type\": \"must_submit\",\n" + "\"completed\": true\n" + "}\n" + "},\n" + "{\n" + "\"id\": 9012244,\n" + "\"indent\": 0,\n" + "\"position\": 2,\n" + "\"title\": \"Favorite App Video\",\n" + "\"type\": \"Assignment\",\n" + "\"module_id\": 1059720,\n" + "\"html_url\": \"https://mobiledev.instructure.com/courses/833052/modules/items/9012244\",\n" + "\"content_id\": 2241864,\n" + "\"url\": \"https://mobiledev.instructure.com/api/v1/courses/833052/assignments/2241864\",\n" + "\"completion_requirement\": {\n" + "\"type\": \"min_score\",\n" + "\"min_score\": \"5\",\n" + "\"completed\": true\n" + "}\n" + "},\n" + "{\n" + "\"id\": 9012248,\n" + "\"indent\": 0,\n" + "\"position\": 3,\n" + "\"title\": \"Android vs. iOS\",\n" + "\"type\": \"Discussion\",\n" + "\"module_id\": 1059720,\n" + "\"html_url\": \"https://mobiledev.instructure.com/courses/833052/modules/items/9012248\",\n" + "\"content_id\": 1369942,\n" + "\"url\": \"https://mobiledev.instructure.com/api/v1/courses/833052/discussion_topics/1369942\",\n" + "\"completion_requirement\": {\n" + "\"type\": \"must_contribute\",\n" + "\"completed\": false\n" + "}\n" + "},\n" + "{\n" + "\"id\": 9012251,\n" + "\"indent\": 0,\n" + "\"position\": 4,\n" + "\"title\": \"Easy Quiz\",\n" + "\"type\": \"Quiz\",\n" + "\"module_id\": 1059720,\n" + "\"html_url\": \"https://mobiledev.instructure.com/courses/833052/modules/items/9012251\",\n" + "\"content_id\": 757314,\n" + "\"url\": \"https://mobiledev.instructure.com/api/v1/courses/833052/quizzes/757314\",\n" + "\"completion_requirement\": {\n" + "\"type\": \"must_submit\",\n" + "\"completed\": true\n" + "}\n" + "}\n" + "]"; }