weekly release 3.10.4+
[moodle.git] / question / behaviour / manualgraded / tests / behaviourtype_test.php
1 <?php
2 // This file is part of Moodle - http://moodle.org/
3 //
4 // Moodle is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU General Public License as published by
6 // the Free Software Foundation, either version 3 of the License, or
7 // (at your option) any later version.
8 //
9 // Moodle is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 // GNU General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
17 /**
18  * This file contains tests for the manually graded behaviour type class.
19  *
20  * @package   qbehaviour_manualgraded
21  * @category  test
22  * @copyright 2015 The Open University
23  * @license   http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
24  */
27 defined('MOODLE_INTERNAL') || die();
29 global $CFG;
30 require_once(__DIR__ . '/../../../engine/lib.php');
31 require_once(__DIR__ . '/../../../engine/tests/helpers.php');
34 /**
35  * Unit tests for the manually graded behaviour type class.
36  *
37  * @copyright  2015 The Open University
38  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
39  */
40 class qbehaviour_manualgraded_type_test extends basic_testcase {
42     /** @var qbehaviour_manualgraded_type */
43     protected $behaviourtype;
45     public function setUp(): void {
46         parent::setUp();
47         $this->behaviourtype = question_engine::get_behaviour_type('manualgraded');
48     }
50     public function test_is_archetypal() {
51         $this->assertTrue($this->behaviourtype->is_archetypal());
52     }
54     public function test_get_unused_display_options() {
55         $this->assertEquals(array('correctness', 'marks', 'specificfeedback', 'generalfeedback', 'rightanswer'),
56                 $this->behaviourtype->get_unused_display_options());
57     }
59     public function test_can_questions_finish_during_the_attempt() {
60         $this->assertFalse($this->behaviourtype->can_questions_finish_during_the_attempt());
61     }
63     public function test_adjust_random_guess_score() {
64         $this->assertEquals(0, $this->behaviourtype->adjust_random_guess_score(0));
65         $this->assertEquals(1, $this->behaviourtype->adjust_random_guess_score(1));
66     }
67 }