You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							347 lines
						
					
					
						
							9.1 KiB
						
					
					
				
			
		
		
	
	
							347 lines
						
					
					
						
							9.1 KiB
						
					
					
				<?php
 | 
						|
class TestEvaluation extends UnitTestCase {
 | 
						|
 | 
						|
	public function TestEvaluation() {
 | 
						|
		$this->UnitTestCase('Test Evaluation');
 | 
						|
	}
 | 
						|
 | 
						|
	public function __construct() {
 | 
						|
        $this->UnitTestCase('Gradebook evaluation library - main/gradebook/lib/be/evaluation.class.test.php');
 | 
						|
	    // The constructor acts like a global setUp for the class
 | 
						|
		global $date;
 | 
						|
		TestManager::create_test_course('COURSEEVALUATION');
 | 
						|
		$this->evaluation = new Evaluation();
 | 
						|
		$this->evaluation-> set_id (1);
 | 
						|
		$this->evaluation-> set_name ('test');
 | 
						|
		$this->evaluation-> set_description ('test description');
 | 
						|
		$this->evaluation-> set_user_id (1);
 | 
						|
		$this->evaluation-> set_course_code ('COURSEEVALUATION');
 | 
						|
		$this->evaluation-> set_category_id (1);
 | 
						|
		$this->evaluation-> set_date ($date);
 | 
						|
		$this->evaluation-> set_weight (1);
 | 
						|
		$this->evaluation-> set_max (1);
 | 
						|
		$this->evaluation-> set_visible (1);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	* Insert this evaluation into the database
 | 
						|
	*/
 | 
						|
 | 
						|
	public function testadd() {
 | 
						|
		$res = $this->evaluation->add();
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testadd_evaluation_log() {
 | 
						|
		$idevaluation = 1;
 | 
						|
		$res = $this->evaluation->add_evaluation_log($idevaluation);
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	* Calculate the score of this evaluation
 | 
						|
	* @param $stud_id student id (default: all students who have results for this eval - then the average is returned)
 | 
						|
	* @return	array (score, max) if student is given
 | 
						|
	* 			array (sum of scores, number of scores) otherwise
 | 
						|
	* 			or null if no scores available
 | 
						|
	*/
 | 
						|
 | 
						|
	public function testcalc_score() {
 | 
						|
		$res = $this->evaluation->calc_score($stud_id = null);
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	* Delete this evaluation from the database
 | 
						|
	*/
 | 
						|
 | 
						|
	public function testdelete() {
 | 
						|
		$res = $this->evaluation->delete();
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
    * Delete all results for this evaluation
 | 
						|
    */
 | 
						|
 | 
						|
    public function testdelete_results() {
 | 
						|
		$res = $this->evaluation->delete_results();
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
    * Delete this evaluation and all underlying results.
 | 
						|
    */
 | 
						|
 | 
						|
    public function testdelete_with_results() {
 | 
						|
		$res = $this->evaluation->delete_with_results();
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Check if an evaluation name (with the same parent category) already exists
 | 
						|
	 * @param $name name to check (if not given, the name property of this object will be checked)
 | 
						|
	 * @param $parent parent category
 | 
						|
	 */
 | 
						|
 | 
						|
	public function testdoes_name_exist() {
 | 
						|
		$name = 'test name';
 | 
						|
		$parent = 1;
 | 
						|
		$res = $this->evaluation->does_name_exist($name, $parent);
 | 
						|
		$this->assertTrue(is_bool($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	* Find evaluations by name
 | 
						|
	* @param string $name_mask search string
 | 
						|
	* @return array evaluation objects matching the search criterium
 | 
						|
	* @todo can be written more efficiently using a new (but very complex) sql query
 | 
						|
	*/
 | 
						|
	//problem with the call get_evaluations():  Call to a member function get_evaluations() on a non-object
 | 
						|
	/*public function testfind_evaluations() {
 | 
						|
		$name_mask = 'test name mask';
 | 
						|
		$selectcat = 1;
 | 
						|
		$res = Evaluation::find_evaluations($name_mask,$selectcat);
 | 
						|
		$this->assertTrue(is_array($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}*/
 | 
						|
 | 
						|
	public function testget_category_id() {
 | 
						|
		$res = $this->evaluation->get_category_id();
 | 
						|
		$this->assertTrue(is_numeric($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testget_course_code() {
 | 
						|
		$res = $this->evaluation->get_course_code();
 | 
						|
		$this->assertTrue(is_string($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testget_date() {
 | 
						|
		$res = $this->evaluation->get_date();
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testget_description() {
 | 
						|
		$res = $this->evaluation->get_description();
 | 
						|
		$this->assertTrue(is_string($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Retrieve evaluations where a student has results for
 | 
						|
	 * and return them as an array of Evaluation objects
 | 
						|
	 * @param $cat_id parent category (use 'null' to retrieve them in all categories)
 | 
						|
	 * @param $stud_id student id
 | 
						|
	 */
 | 
						|
 | 
						|
	public function testget_evaluations_with_result_for_student() {
 | 
						|
		$stud_id = 1;
 | 
						|
		$res = $this->evaluation->get_evaluations_with_result_for_student($cat_id = null, $stud_id);
 | 
						|
		$this->assertTrue(is_array($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testget_icon_name() {
 | 
						|
		$res = $this->evaluation->get_icon_name();
 | 
						|
		$this->assertTrue(is_string($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testget_id() {
 | 
						|
		$res = $this->evaluation->get_id();
 | 
						|
		$this->assertTrue(is_numeric($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testget_item_type() {
 | 
						|
		$res = $this->evaluation->get_item_type();
 | 
						|
		$this->assertTrue(is_string($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testget_max() {
 | 
						|
		$res = $this->evaluation->get_max();
 | 
						|
		$this->assertTrue(is_numeric($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testget_name() {
 | 
						|
		$res = $this->evaluation->get_name();
 | 
						|
		$this->assertTrue(is_string($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
     * Get a list of students that do not have a result record for this evaluation
 | 
						|
     */
 | 
						|
 | 
						|
	public function testget_not_subscribed_students() {
 | 
						|
		$res = $this->evaluation->get_not_subscribed_students($first_letter_user = '');
 | 
						|
		$this->assertTrue(is_array($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Generate an array of possible categories where this evaluation can be moved to.
 | 
						|
	 * Notice: its own parent will be included in the list: it's up to the frontend
 | 
						|
	 * to disable this element.
 | 
						|
	 * @return array 2-dimensional array - every element contains 3 subelements (id, name, level)
 | 
						|
	 */
 | 
						|
 | 
						|
	public function testget_target_categories() {
 | 
						|
		$res = $this->evaluation->get_target_categories();
 | 
						|
		$this->assertTrue(is_array($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testget_user_id() {
 | 
						|
		$res = $this->evaluation->get_user_id();
 | 
						|
		$this->assertTrue(is_numeric($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testget_weight() {
 | 
						|
		$res = $this->evaluation->get_weight();
 | 
						|
		$this->assertTrue(is_numeric($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Are there any results for this evaluation yet ?
 | 
						|
	 * The 'max' property should not be changed then.
 | 
						|
	 */
 | 
						|
 | 
						|
	public function testhas_results() {
 | 
						|
		$res = $this->evaluation->has_results();
 | 
						|
		$this->assertTrue(is_bool($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testis_valid_score() {
 | 
						|
		$score = 1;
 | 
						|
		$res = $this->evaluation->is_valid_score($score);
 | 
						|
		$this->assertTrue(is_bool($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testis_visible() {
 | 
						|
		$res = $this->evaluation->is_visible();
 | 
						|
		$this->assertTrue(is_numeric($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Retrieve evaluations and return them as an array of Evaluation objects
 | 
						|
	 * @param $id evaluation id
 | 
						|
	 * @param $user_id user id (evaluation owner)
 | 
						|
	 * @param $course_code course code
 | 
						|
	 * @param $category_id parent category
 | 
						|
	 * @param $visible visible
 | 
						|
	 */
 | 
						|
 | 
						|
	public function testload() {
 | 
						|
		$res = $this->evaluation->load($id = null, $user_id = null, $course_code = null, $category_id = null, $visible = null);
 | 
						|
		$this->assertTrue(is_array($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Move this evaluation to the given category.
 | 
						|
	 * If this evaluation moves from inside a course to outside,
 | 
						|
	 * its course code is also changed.
 | 
						|
	 */
 | 
						|
 | 
						|
	public function testmove_to_cat() {
 | 
						|
		$cat = $this->evaluation;
 | 
						|
		$res = $this->evaluation->move_to_cat($cat);
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	/**
 | 
						|
	 * Update the properties of this evaluation in the database
 | 
						|
	 */
 | 
						|
 | 
						|
	public function testsave() {
 | 
						|
		$res = $this->evaluation->save();
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testset_category_id() {
 | 
						|
		$res = $this->evaluation->set_category_id(1);
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testset_course_code() {
 | 
						|
		$res = $this->evaluation->set_course_code('COURSEEVALUATION');
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testset_date() {
 | 
						|
		global $date;
 | 
						|
		$res = $this->evaluation->set_date('02/02/2010');
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testset_description() {
 | 
						|
		$res = $this->evaluation->set_description('test description');
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testset_id() {
 | 
						|
		$res = $this->evaluation->set_id(1);
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testset_max() {
 | 
						|
		$res = $this->evaluation->set_max(1);
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testset_name() {
 | 
						|
		$res = $this->evaluation->set_name('test name');
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testset_user_id() {
 | 
						|
		$res = $this->evaluation->set_user_id(1);
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testset_visible() {
 | 
						|
		$res = $this->evaluation->set_visible(1);
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function testset_weight() {
 | 
						|
		$res = $this->evaluation->set_weight(1);
 | 
						|
		$this->assertTrue(is_null($res));
 | 
						|
		//var_dump($res);
 | 
						|
	}
 | 
						|
 | 
						|
	public function __destruct() {
 | 
						|
		// The destructor acts like a global tearDown for the class
 | 
						|
		TestManager::delete_test_course('COURSEEVALUATION');
 | 
						|
	}
 | 
						|
}
 | 
						|
?>
 | 
						|
 |