mirror of
https://github.com/moodle/moodle.git
synced 2025-08-06 09:26:35 +02:00
297 lines
9.4 KiB
PHP
297 lines
9.4 KiB
PHP
<?php // $Id$
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// NOTICE OF COPYRIGHT //
|
|
// //
|
|
// Moodle - Modular Object-Oriented Dynamic Learning Environment //
|
|
// http://moodle.org //
|
|
// //
|
|
// Copyright (C) 1999-2004 Martin Dougiamas http://dougiamas.com //
|
|
// //
|
|
// This program is free software; you can redistribute it and/or modify //
|
|
// it under the terms of the GNU General Public License as published by //
|
|
// the Free Software Foundation; either version 2 of the License, or //
|
|
// (at your option) any later version. //
|
|
// //
|
|
// This program is distributed in the hope that it will be useful, //
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
|
|
// GNU General Public License for more details: //
|
|
// //
|
|
// http://www.gnu.org/copyleft/gpl.html //
|
|
// //
|
|
///////////////////////////////////////////////////////////////////////////
|
|
|
|
/**
|
|
* Unit tests for (some of) ../gradelib.php.
|
|
*
|
|
* @author nicolas@moodle.com
|
|
* @license http://www.gnu.org/copyleft/gpl.html GNU Public License
|
|
* @package moodlecore
|
|
*/
|
|
|
|
/** $Id */
|
|
require_once(dirname(__FILE__) . '/../../config.php');
|
|
|
|
global $CFG;
|
|
require_once($CFG->libdir . '/simpletestlib.php');
|
|
require_once($CFG->libdir . '/gradelib.php');
|
|
require_once($CFG->libdir . '/dmllib.php');
|
|
|
|
class gradelib_test extends UnitTestCase {
|
|
|
|
var $grade_items = array();
|
|
var $grade_categories = array();
|
|
var $courseid = 1;
|
|
|
|
/**
|
|
* Create temporary entries in the database for these tests.
|
|
* These tests have to work no matter the data currently in the database
|
|
* (meaning they should run on a brand new site). This means several items of
|
|
* data have to be artificially inseminated (:-) in the DB.
|
|
*/
|
|
function setUp()
|
|
{
|
|
$grade_category = new stdClass();
|
|
|
|
$grade_category->fullname = 'unittestcategory1';
|
|
$grade_category->courseid = $this->courseid;
|
|
$grade_category->aggregation = GRADE_AGGREGATE_MEAN;
|
|
$grade_category->keephigh = 100;
|
|
$grade_category->droplow = 10;
|
|
$grade_category->hidden = 0;
|
|
|
|
if ($grade_category->id = insert_record('grade_categories', $grade_category)) {
|
|
$this->grade_categories[] = $grade_category;
|
|
}
|
|
|
|
$grade_item = new stdClass();
|
|
|
|
$grade_item->courseid = $this->courseid;
|
|
$grade_item->categoryid = $grade_category->id;
|
|
$grade_item->itemname = 'unittestgradeitem1';
|
|
$grade_item->itemtype = 'mod';
|
|
$grade_item->itemmodule = 'quiz';
|
|
$grade_item->iteminstance = 1;
|
|
$grade_item->iteminfo = 'Grade item used for unit testing';
|
|
|
|
if ($grade_item->id = insert_record('grade_items', $grade_item)) {
|
|
$this->grade_items[] = $grade_item;
|
|
}
|
|
|
|
$grade_item = new stdClass();
|
|
|
|
$grade_item->courseid = $this->courseid;
|
|
$grade_item->itemname = 'unittestgradeitem2';
|
|
$grade_item->itemtype = 'import';
|
|
$grade_item->itemmodule = 'assignment';
|
|
$grade_item->iteminstance = 2;
|
|
$grade_item->iteminfo = 'Grade item used for unit testing';
|
|
$grade_item->locked = mktime() + 240000;
|
|
|
|
if ($grade_item->id = insert_record('grade_items', $grade_item)) {
|
|
$this->grade_items[] = $grade_item;
|
|
}
|
|
|
|
$grade_item = new stdClass();
|
|
|
|
$grade_item->courseid = $this->courseid;
|
|
$grade_item->categoryid = $grade_category->id;
|
|
$grade_item->itemname = 'unittestgradeitem3';
|
|
$grade_item->itemtype = 'mod';
|
|
$grade_item->itemmodule = 'forum';
|
|
$grade_item->iteminstance = 3;
|
|
$grade_item->iteminfo = 'Grade item used for unit testing';
|
|
|
|
if ($grade_item->id = insert_record('grade_items', $grade_item)) {
|
|
$this->grade_items[] = $grade_item;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Delete temporary entries from the database
|
|
*/
|
|
function tearDown()
|
|
{
|
|
foreach ($this->grade_items as $grade_item) {
|
|
delete_records('grade_items', 'id', $grade_item->id);
|
|
}
|
|
|
|
foreach ($this->grade_categories as $grade_category) {
|
|
delete_records('grade_categories', 'id', $grade_category->id);
|
|
}
|
|
}
|
|
|
|
function test_grade_get_items()
|
|
{
|
|
$grade_items = grade_get_items($this->courseid);
|
|
|
|
$this->assertTrue(is_array($grade_items));
|
|
$this->assertEqual(count($grade_items), 3);
|
|
}
|
|
|
|
function test_grade_create_item()
|
|
{
|
|
$params = new stdClass();
|
|
|
|
$params->courseid = $this->courseid;
|
|
$params->categoryid = $this->grade_categories[0]->id;
|
|
$params->itemname = 'unittestgradeitem4';
|
|
$params->itemtype = 'mod';
|
|
$params->itemmodule = 'database';
|
|
$params->iteminstance = 4;
|
|
$params->iteminfo = 'Grade item used for unit testing';
|
|
|
|
$params->id = grade_create_item($params);
|
|
$last_grade_item = end($this->grade_items);
|
|
|
|
$this->assertEqual($params->id, $last_grade_item->id + 1);
|
|
$this->grade_items[] = $params;
|
|
}
|
|
|
|
function test_grade_create_category()
|
|
{
|
|
$grade_category = new stdClass();
|
|
|
|
$grade_category->id = grade_create_category($this->courseid, 'unittestcategory2', $this->grade_items, GRADE_AGGREGATE_MEAN);
|
|
$last_grade_category = end($this->grade_categories);
|
|
|
|
$this->assertEqual($grade_category->id, $last_grade_category->id + 1);
|
|
$this->grade_categories[] = $grade_category;
|
|
}
|
|
|
|
function test_grade_is_locked()
|
|
{
|
|
$grade_item = $this->grade_items[0];
|
|
$this->assertFalse(grade_is_locked($grade_item->itemtype, $grade_item->itemmodule, $grade_item->iteminstance));
|
|
$grade_item = $this->grade_items[1];
|
|
$this->assertTrue(grade_is_locked($grade_item->itemtype, $grade_item->itemmodule, $grade_item->iteminstance));
|
|
}
|
|
|
|
function test_grade_item_construct()
|
|
{
|
|
$params = new stdClass();
|
|
|
|
$params->courseid = $this->courseid;
|
|
$params->categoryid = $this->grade_categories[0]->id;
|
|
$params->itemname = 'unittestgradeitem4';
|
|
$params->itemtype = 'mod';
|
|
$params->itemmodule = 'database';
|
|
$params->iteminstance = 4;
|
|
$params->iteminfo = 'Grade item used for unit testing';
|
|
|
|
$grade_item = new grade_item($params);
|
|
|
|
$this->assertEqual($params->courseid, $grade_item->courseid);
|
|
$this->assertEqual($params->categoryid, $grade_item->categoryid);
|
|
$this->assertEqual($params->itemname, $grade_item->itemname);
|
|
$this->assertEqual($params->itemtype, $grade_item->itemtype);
|
|
$this->assertEqual($params->itemmodule, $grade_item->itemmodule);
|
|
$this->assertEqual($params->iteminstance, $grade_item->iteminstance);
|
|
$this->assertEqual($params->iteminfo, $grade_item->iteminfo);
|
|
}
|
|
|
|
function test_grade_item_insert()
|
|
{
|
|
$grade_item = new grade_item();
|
|
|
|
$grade_item->courseid = $this->courseid;
|
|
$grade_item->categoryid = $this->grade_categories[0]->id;
|
|
$grade_item->itemname = 'unittestgradeitem4';
|
|
$grade_item->itemtype = 'mod';
|
|
$grade_item->itemmodule = 'quiz';
|
|
$grade_item->iteminstance = 1;
|
|
$grade_item->iteminfo = 'Grade item used for unit testing';
|
|
|
|
$grade_item->insert();
|
|
|
|
$last_grade_item = end($this->grade_items);
|
|
|
|
$this->assertEqual($grade_item->id, $last_grade_item->id + 1);
|
|
$this->grade_items[] = $grade_item;
|
|
}
|
|
|
|
function test_grade_item_delete()
|
|
{
|
|
$grade_item = new grade_item($this->grade_items[0]);
|
|
$this->assertTrue($grade_item->delete());
|
|
$this->assertFalse(get_record('grade_items', 'id', $grade_item->id));
|
|
}
|
|
|
|
function test_grade_item_update()
|
|
{
|
|
$grade_item = new grade_item($this->grade_items[0]);
|
|
$grade_item->iteminfo = 'Updated info for this unittest grade_item';
|
|
$this->assertTrue($grade_item->update());
|
|
$this->assertEqual($grade_item->iteminfo, get_field('grade_items', 'iteminfo', 'id', $grade_item->id));
|
|
}
|
|
|
|
function test_grade_item_get_by_id()
|
|
{
|
|
|
|
}
|
|
|
|
function test_grade_item_get_record()
|
|
{
|
|
|
|
}
|
|
|
|
function test_grade_item_get_records_select()
|
|
{
|
|
|
|
}
|
|
|
|
function test_grade_item_get_raw()
|
|
{
|
|
|
|
}
|
|
|
|
function test_grade_item_get_final()
|
|
{
|
|
|
|
}
|
|
|
|
function test_grade_item_get_calculation()
|
|
{
|
|
|
|
}
|
|
|
|
function test_grade_item_get_category()
|
|
{
|
|
|
|
}
|
|
|
|
function test_grade_category_construct()
|
|
{
|
|
|
|
}
|
|
|
|
function test_grade_category_insert()
|
|
{
|
|
|
|
}
|
|
|
|
function test_grade_category_update()
|
|
{
|
|
|
|
}
|
|
|
|
function test_grade_category_delete()
|
|
{
|
|
|
|
}
|
|
|
|
function test_grade_category_get_by_id()
|
|
{
|
|
|
|
}
|
|
|
|
function test_grade_category_get_record()
|
|
{
|
|
|
|
}
|
|
}
|
|
|
|
?>
|