Chamilo is a learning management system focused on ease of use and accessibility
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.
 
 
 
 
 
 
chamilo-lms/tests/main/exercice/answer.class.test.php

389 lines
8.2 KiB

<?php
class TestAnswer extends UnitTestCase {
public $aAnswer;
public function TestAnswer() {
$this->UnitTestCase('');
}
public function setUp() {
/*
//Create a new exercise
require_once api_get_path(SYS_CODE_PATH).'exercice/exercise.class.php';
require_once api_get_path(SYS_CODE_PATH).'inc/lib/pear/HTML/QuickForm.php';
$this->aAnswer = new Answer(2);
$this->aAnswer->read();
$this->aAnswer = new Exercise();
$form = array(
'exerciseTitle'=>'testtitle',
'exerciseDescription'=>'testdescription',
'exerciseAttempts'=>'0',
'exerciseFeedbackType'=>'0',
'exerciseType'=>'1',
'randomQuestions'=>'0',
'randomAnswers'=>'0',
'results_disabled'=>'0',
'enabletimercontroltotalminutes'=>'0');
$res = Exercise::processCreation($form,$type='1');
*/
$this->aAnswer = new Answer(2);
}
public function tearDown() {
$this->aAnswer = null;
}
/**
* constructor of the class
*
* @author Olivier Brouckaert
* @param integer Question ID that answers belong to
*/
/*
function testAnswerConstructor() {
$questionId = 1;
$res = $this->aAnswer->Answer($questionId);
$this->assertTrue(is_null($res));
//var_dump($res);
}
*/
/**
* creates a new answer
*
* @author Olivier Brouckaert
* @param string answer title
* @param integer 0 if bad answer, not 0 if good answer
* @param string answer comment
* @param integer answer weighting
* @param integer answer position
* @param coordinates Coordinates for hotspot exercises (optional)
* @param integer Type for hotspot exercises (optional)
*/
function testcreateAnswer() {
$answer = 'test';
$correct = 1;
$comment ='test';
$weighting = 2;
$position = 1;
$res = $this->aAnswer->createAnswer($answer,$correct,$comment,$weighting,$position,$new_hotspot_coordinates = 1, $new_hotspot_type = 1,$destination='');
$this->assertTrue(is_null($res));
//var_dump($res);
}
/**
* duplicates answers by copying them into another question
* @param - integer $newQuestionId - ID of the new question
*/
function testduplicate() {
$newQuestionId = 1;
$res = $this->aAnswer->duplicate($newQuestionId);
$this->assertTrue(is_null($res));
//var_dump($res);
}
/**
* Returns a list of answers
* @return array List of answers where each answer is an array of (id, answer, comment, grade) and grade=weighting
*/
function testgetAnswersList() {
$res = $this->aAnswer->getAnswersList();
$this->assertTrue(is_array($res));
//var_dump($res);
}
/**
* Returns a list of grades
* @return array List of grades where grade=weighting (?)
*/
function testgetGradesList() {
$res = $this->aAnswer->getGradesList();
$this->assertTrue(is_array($res));
//var_dump($res);
}
/**
* Returns the question type
* @return integer The type of the question this answer is bound to
*/
function testgetQuestionType() {
$res = $this->aAnswer->getQuestionType();
if(!is_null($res)){
$this->assertTrue(is_numeric($res));
}
//var_dump($res);
}
/**
* tells if answer is correct or not
* @param - integer $id - answer ID
* @return - integer - 0 if bad answer, not 0 if good answer
*/
function testisCorrect() {
$id = 1;
$res = $this->aAnswer->isCorrect($id);
if(!is_null($res)){
$this->assertTrue(is_numeric($res));
}
//var_dump($res);
}
/**
* reads answer informations from the data base
*/
function testread() {
$res = $this->aAnswer->read();
$this->assertTrue(is_null($res));
//var_dump($res);
}
/**
* reads answer informations from the data base ordered by parameter
* @param string Field we want to order by
* @param string DESC or ASC
*/
function testreadOrderedBy() {
global $_course;
$field = 'position';
$res = $this->aAnswer->readOrderedBy($field,$order=ASC);
$this->assertTrue(is_null($res));
//var_dump($res);
}
/**
* records answers into the data base
*/
function testsave() {
$res = $this->aAnswer->save();
$this->assertTrue(is_null($res));
//var_dump($res);
}
/**
* returns the answer title
* @param - integer $id - answer ID
* @return - string - answer title
*/
function testselectAnswer() {
$id = 1;
$res = $this->aAnswer->selectAnswer($id);
if(!is_null($res)){
$this->assertTrue(is_string($res));
}
//var_dump($res);
}
/**
* @param - integer $id - answer ID
* @return - bool - answer by id
*/
function testselectAnswerByAutoId() {
$auto_id = 1;
$res = $this->aAnswer->selectAnswerByAutoId($auto_id);
if(!is_null($res)){
$this->assertTrue(is_array($res));
} else {
$this->assertTrue(is_bool($res));
}
//var_dump($res);
}
/**
* returns the answer title from an answer's position
* @param - integer $id - answer ID
* @return - bool - answer title
*/
function testselectAnswerIdByPosition() {
$pos = 1;
$res = $this->aAnswer->selectAnswerIdByPosition($pos);
if(!is_null($res)){
$this->assertTrue(is_bool($res));
}
//var_dump($res);
}
/**
* returns the autoincrement id identificator
* @return - integer - answer num
*/
function testselectAutoId() {
$id = 1;
$res = $this->aAnswer->selectAutoId($id);
if(!is_null($res)){
$this->assertTrue(is_numeric($res));
}
//var_dump($res);
}
/**
* returns answer comment
* @param - integer $id - answer ID
* @return - string - answer comment
*/
function testselectComment() {
$id = 1;
$res = $this->aAnswer->selectComment($id);
if(!is_null($res)){
$this->assertTrue(is_string($res));
}
//var_dump($res);
}
/**
* returns the question ID of the destination question
* @return - integer - the question ID
*/
function testselectDestination() {
$id = 1;
$res = $this->aAnswer->selectDestination($id);
if(!is_null($res)){
$this->assertTrue(is_string($res));
}
//var_dump($res);
}
/**
* returns answer hotspot coordinates
* @param integer Answer ID
* @return integer Answer position
*/
function testselectHotspotCoordinates() {
$id = 1;
$res = $this->aAnswer->selectHotspotCoordinates($id);
if(!is_null($res)){
$this->assertTrue(is_string($res));
}
}
/**
* returns answer hotspot type
*
* @author Toon Keppens
* @param integer Answer ID
* @return integer Answer position
*/
function testselectHotspotType() {
$id = 1;
$res = $this->aAnswer->selectHotspotType($id);
if(!is_null($res)){
$this->assertTrue(is_string($res));
}
}
/**
* returns the number of answers in this question
*
* @author - Olivier Brouckaert
* @return - integer - number of answers
*/
function testselectNbrAnswers() {
$res = $this->aAnswer->selectNbrAnswers();
if(!is_null($res)){
$this->assertTrue(is_numeric($res));
}
}
/**
* returns answer position
*
* @author - Olivier Brouckaert
* @param - integer $id - answer ID
* @return - integer - answer position
*/
function testselectPosition() {
$id = 1;
$res = $this->aAnswer->selectPosition($id);
if(!is_null($res)){
$this->assertTrue(is_numeric($res));
}
}
/**
* returns the question ID which the answers belong to
*
* @author - Olivier Brouckaert
* @return - integer - the question ID
*/
function testselectQuestionId() {
$res = $this->aAnswer->selectQuestionId();
if(!is_null($res)){
$this->assertTrue(is_numeric($res));
}
}
/**
* returns answer weighting
*
* @author - Olivier Brouckaert
* @param - integer $id - answer ID
* @return - integer - answer weighting
*/
function testselectWeighting() {
$id = 1;
$res = $this->aAnswer->selectWeighting($id);
if(!is_null($res)){
$this->assertTrue(is_numeric($res));
}
}
/**
* updates an answer
*
* @author Toon Keppens
* @param string Answer title
* @param string Answer comment
* @param integer Answer weighting
* @param integer Answer position
*/
function testupdateAnswers() {
$answer = '';
$comment = '';
$weighting=2;
$position=1;
$destination='0@@0@@0@@0';
$res = $this->aAnswer->updateAnswers($answer,$comment,$weighting,$position,$destination);
if(!is_null($res)){
$this->assertTrue(is_numeric($res));
}
}
/**
* clears $new_* arrays
*/
function testcancel() {
$res = $this->aAnswer->cancel();
$this->assertTrue(is_null($res));
//var_dump($res);
}
}
?>