| Línea 377... |
Línea 377... |
| 377 |
* Tags: 'subcat', 'foo'
|
377 |
* Tags: 'subcat', 'foo'
|
| 378 |
* Question: subcatq2
|
378 |
* Question: subcatq2
|
| 379 |
* Parent: cat1
|
379 |
* Parent: cat1
|
| 380 |
* Category: emptycat
|
380 |
* Category: emptycat
|
| 381 |
*
|
381 |
*
|
| 382 |
* @dataProvider get_questions_test_cases()
|
382 |
* @dataProvider get_questions_test_cases
|
| 383 |
* @param string $categoryindex The named index for the category to use
|
383 |
* @param string $categoryindex The named index for the category to use
|
| 384 |
* @param bool $includesubcategories If the search should include subcategories
|
384 |
* @param bool $includesubcategories If the search should include subcategories
|
| 385 |
* @param string[] $usetagnames The tag names to include in the search
|
385 |
* @param string[] $usetagnames The tag names to include in the search
|
| 386 |
* @param string[] $expectedquestionindexes The questions expected in the result
|
386 |
* @param string[] $expectedquestionindexes The questions expected in the result
|
| 387 |
*/
|
387 |
*/
|
| Línea 587... |
Línea 587... |
| 587 |
* Tags: 'subcat', 'foo'
|
587 |
* Tags: 'subcat', 'foo'
|
| 588 |
* Question: subcatq2
|
588 |
* Question: subcatq2
|
| 589 |
* Parent: cat1
|
589 |
* Parent: cat1
|
| 590 |
* Category: emptycat
|
590 |
* Category: emptycat
|
| 591 |
*
|
591 |
*
|
| 592 |
* @dataProvider count_questions_test_cases()
|
592 |
* @dataProvider count_questions_test_cases
|
| 593 |
* @param string $categoryindex The named index for the category to use
|
593 |
* @param string $categoryindex The named index for the category to use
|
| 594 |
* @param bool $includesubcategories If the search should include subcategories
|
594 |
* @param bool $includesubcategories If the search should include subcategories
|
| 595 |
* @param string[] $usetagnames The tag names to include in the search
|
595 |
* @param string[] $usetagnames The tag names to include in the search
|
| 596 |
* @param int $expectedcount The number of questions expected in the result
|
596 |
* @param int $expectedcount The number of questions expected in the result
|
| 597 |
*/
|
597 |
*/
|
| Línea 678... |
Línea 678... |
| 678 |
\core_tag_tag::set_item_tags('core_question', 'question', $questions[0]->id, $context, $tagnames);
|
678 |
\core_tag_tag::set_item_tags('core_question', 'question', $questions[0]->id, $context, $tagnames);
|
| 679 |
}
|
679 |
}
|
| Línea 680... |
Línea 680... |
| 680 |
|
680 |
|
| 681 |
return [$category, $questions];
|
681 |
return [$category, $questions];
|
| - |
|
682 |
}
|
| - |
|
683 |
|
| - |
|
684 |
/**
|
| - |
|
685 |
* Test that the random question loader excludes questions with invalid types.
|
| - |
|
686 |
* @return void
|
| - |
|
687 |
* @throws \dml_exception
|
| - |
|
688 |
*/
|
| - |
|
689 |
public function test_invalid_questions_are_excluded(): void {
|
| - |
|
690 |
|
| - |
|
691 |
global $DB;
|
| - |
|
692 |
|
| - |
|
693 |
$this->resetAfterTest();
|
| - |
|
694 |
|
| - |
|
695 |
[$category, $questions] = $this->create_category_and_questions(4);
|
| - |
|
696 |
$loader = new random_question_loader(new qubaid_list([]));
|
| - |
|
697 |
$filters = question_filter_test_helper::create_filters([$category->id], false, []);
|
| - |
|
698 |
|
| - |
|
699 |
// Update one of the questions to have an invalid type.
|
| - |
|
700 |
$invalid = $questions[0];
|
| - |
|
701 |
$invalid->qtype = 'invalid';
|
| - |
|
702 |
$DB->update_record('question', $invalid);
|
| - |
|
703 |
|
| - |
|
704 |
// Assert that we get 1 less result back because the invalid type is excluded.
|
| - |
|
705 |
$result = $loader->get_filtered_questions($filters);
|
| - |
|
706 |
$this->assertEquals(count($questions) - 1, count($result));
|
| - |
|
707 |
|
| - |
|
708 |
}
|
| 682 |
}
|
709 |
|