public function test_internal_get_grade_state() { $this->mock_setup(); $item = new stdClass(); $grade = new stdClass(); $item->gradepass = 4; $item->hidden = 0; $grade->rawgrade = 4.0; $grade->finalgrade = null; // Grade has pass mark and is not hidden, user passes. $this->assertEquals(COMPLETION_COMPLETE_PASS, completion_info::internal_get_grade_state($item, $grade)); // Same but user fails. $grade->rawgrade = 3.9; $this->assertEquals(COMPLETION_COMPLETE_FAIL, completion_info::internal_get_grade_state($item, $grade)); // User fails on raw grade but passes on final. $grade->finalgrade = 4.0; $this->assertEquals(COMPLETION_COMPLETE_PASS, completion_info::internal_get_grade_state($item, $grade)); // Item is hidden. $item->hidden = 1; $this->assertEquals(COMPLETION_COMPLETE, completion_info::internal_get_grade_state($item, $grade)); // Item isn't hidden but has no pass mark. $item->hidden = 0; $item->gradepass = 0; $this->assertEquals(COMPLETION_COMPLETE, completion_info::internal_get_grade_state($item, $grade)); }