import com.google.gson.Gson; import com.instructure.canvasapi.model.ModuleObject; 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 ModuleObjectUnitTest extends Assert { @Test public void testModuleObject() { Gson gson = CanvasRestAdapter.getGSONParser(); ModuleObject[] moduleObjects = gson.fromJson(moduleObjectJSON, ModuleObject[].class); for(int i = 0; i < moduleObjects.length; i++) { Assert.assertTrue(moduleObjects[i].getId() > 0); Assert.assertNotNull(moduleObjects[i].getName()); //only the module object with index of 1 has an unlock date if(i == 1) { Assert.assertNotNull(moduleObjects[i].getUnlock_at()); } assertNotNull(moduleObjects[i].getState()); //objects 1 - 3 have prerequisite ids if(i > 0) { for(int j = 0; j < moduleObjects[i].getPrerequisite_ids().length; j++){ assertTrue(moduleObjects[i].getPrerequisite_ids()[j] > 0); } } } } String moduleObjectJSON = "[\n" + "{\n" + "\"id\": 1059720,\n" + "\"name\": \"Beginners\",\n" + "\"position\": 1,\n" + "\"unlock_at\": null,\n" + "\"require_sequential_progress\": false,\n" + "\"prerequisite_module_ids\": [],\n" + "\"state\": \"started\",\n" + "\"completed_at\": null,\n" + "\"items_count\": 4,\n" + "\"items_url\": \"https://mobiledev.instructure.com/api/v1/courses/833052/modules/1059720/items\"\n" + "},\n" + "{\n" + "\"id\": 1059721,\n" + "\"name\": \"Advanced\",\n" + "\"position\": 2,\n" + "\"unlock_at\": \"2013-07-31T06:00:00Z\",\n" + "\"require_sequential_progress\": false,\n" + "\"prerequisite_module_ids\": [\n" + "1059720\n" + "],\n" + "\"state\": \"locked\",\n" + "\"completed_at\": null,\n" + "\"items_count\": 1,\n" + "\"items_url\": \"https://mobiledev.instructure.com/api/v1/courses/833052/modules/1059721/items\"\n" + "},\n" + "{\n" + "\"id\": 1059722,\n" + "\"name\": \"User Interface\",\n" + "\"position\": 3,\n" + "\"unlock_at\": null,\n" + "\"require_sequential_progress\": false,\n" + "\"prerequisite_module_ids\": [\n" + "1059721\n" + "],\n" + "\"state\": \"locked\",\n" + "\"completed_at\": null,\n" + "\"items_count\": 0,\n" + "\"items_url\": \"https://mobiledev.instructure.com/api/v1/courses/833052/modules/1059722/items\"\n" + "},\n" + "{\n" + "\"id\": 1059723,\n" + "\"name\": \"Jelly Bean\",\n" + "\"position\": 4,\n" + "\"unlock_at\": null,\n" + "\"require_sequential_progress\": false,\n" + "\"prerequisite_module_ids\": [\n" + "1059722\n" + "],\n" + "\"state\": \"locked\",\n" + "\"completed_at\": null,\n" + "\"items_count\": 0,\n" + "\"items_url\": \"https://mobiledev.instructure.com/api/v1/courses/833052/modules/1059723/items\"\n" + "}\n" + "]"; }