/** * Test get_completion_counts function. */ public function test_get_completion_counts() { global $DB; // Fixture. $elisgen = new elis_program_datagenerator($DB); $pmcourse = $elisgen->create_course(); $class = $elisgen->create_pmclass(array('courseid' => $pmcourse->id)); $class2 = $elisgen->create_pmclass(array('courseid' => $pmcourse->id)); $user = $elisgen->create_user(); $user2 = $elisgen->create_user(); $elisgen->assign_user_to_class($user->id, $class->id); $elisgen->assign_user_to_class($user2->id, $class2->id); $course = new course(); $course->id = $pmcourse->id; $completioncounts = $course->get_completion_counts(); // Verify results. $this->assertInternalType('array', $completioncounts); $this->assertEquals(3, count($completioncounts)); $this->assertArrayHasKey(STUSTATUS_NOTCOMPLETE, $completioncounts); $this->assertArrayHasKey(STUSTATUS_FAILED, $completioncounts); $this->assertArrayHasKey(STUSTATUS_PASSED, $completioncounts); $this->assertEquals(2, $completioncounts[STUSTATUS_NOTCOMPLETE]); $this->assertEquals(0, $completioncounts[STUSTATUS_FAILED]); $this->assertEquals(0, $completioncounts[STUSTATUS_PASSED]); }
/** * Test get_dashboard_program_data function. */ public function test_get_dashboard_program_data() { global $DB; $datagen = new elis_program_datagenerator($DB); // Create entities. $mockuser = $datagen->create_user(); $pgm = $datagen->create_program(); $pmcourse = $datagen->create_course(); $pmclass = $datagen->create_pmclass(array('courseid' => $pmcourse->id)); // Perform assignments. $curcourse = $datagen->assign_course_to_program($pmcourse->id, $pgm->id); $curstu = $datagen->assign_user_to_program($mockuser->id, $pgm->id); $stu = $datagen->assign_user_to_class($mockuser->id, $pmclass->id); $expectedusercurs = array($curstu->id => (object) array('id' => $curstu->id, 'curid' => $pgm->id, 'name' => $pgm->name)); $expectedcurriculas = array($pgm->id => array('id' => $pgm->id, 'name' => $pgm->name, 'data' => array(array($pmcourse->name, $pmclass->idnumber, $pmcourse->syllabus, 0, get_string('n_completed', 'local_elisprogram'), get_string('na', 'local_elisprogram'))))); $expectedclassids = array($pmclass->id); $expectedtotalcurricula = 1; $expectedcompletecoursesmap = array($pgm->id => 0); $expectedtotalcoursesmap = array($pgm->id => 1); $user = new user(); $user->id = $mockuser->id; list($usercurs, $curriculas, $classids, $totalcurricula, $completecoursesmap, $totalcoursesmap) = $user->get_dashboard_program_data(false, false); $this->assertEquals($expectedusercurs, $usercurs); $this->assertEquals($expectedcurriculas, $curriculas); $this->assertEquals($expectedclassids, $classids); $this->assertEquals($expectedtotalcurricula, $totalcurricula); $this->assertEquals($expectedcompletecoursesmap, $completecoursesmap); $this->assertEquals($expectedtotalcoursesmap, $totalcoursesmap); $expectedcurriculas = array(); $expectedtotalcurricula = 0; $expectedcompletecoursesmap = array(); $expectedtotalcoursesmap = array(); list($usercurs, $curriculas, $classids, $totalcurricula, $completecoursesmap, $totalcoursesmap) = $user->get_dashboard_program_data(true, true); $this->assertEquals($expectedusercurs, $usercurs); $this->assertEquals($expectedcurriculas, $curriculas); $this->assertEquals($expectedclassids, $classids); $this->assertEquals($expectedtotalcurricula, $totalcurricula); $this->assertEquals($expectedcompletecoursesmap, $completecoursesmap); $this->assertEquals($expectedtotalcoursesmap, $totalcoursesmap); }