ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
class.ilTestRandomQuestionSetBuilderWithAmountPerTest.php
Go to the documentation of this file.
1<?php
2
19declare(strict_types=1);
20
28{
32 public function checkBuildable(): bool
33 {
34 $questionStage = $this->getSrcPoolDefListRelatedQuestUniqueCollection($this->sourcePoolDefinitionList);
35
36 if ($questionStage->isSmallerThan($this->questionSetConfig->getQuestionAmountPerTest())) {
37 return false;
38 }
39
40 return true;
41 }
42
46 public function performBuild(ilTestSession $testSession)
47 {
48 $questionStage = $this->getSrcPoolDefListRelatedQuestUniqueCollection($this->sourcePoolDefinitionList);
49
50 $questionSet = $this->fetchQuestionsFromStageRandomly(
51 $questionStage,
52 $this->questionSetConfig->getQuestionAmountPerTest()
53 );
54
55 $this->handleQuestionOrdering($questionSet);
56
57 $this->storeQuestionSet($testSession, $questionSet);
58 }
59}
storeQuestionSet(ilTestSession $testSession, $questionSet)
getSrcPoolDefListRelatedQuestUniqueCollection(ilTestRandomQuestionSetSourcePoolDefinitionList $sourcePoolDefinitionList)
handleQuestionOrdering(ilTestRandomQuestionSetQuestionCollection $questionSet)
fetchQuestionsFromStageRandomly(ilTestRandomQuestionSetQuestionCollection $questionStage, $requiredQuestionAmount)
Test session handler.