ILIAS  trunk Revision v11.0_alpha-2662-g519ff7d528f
class.ilTestRandomQuestionSetBuilderWithAmountPerTest.php
Go to the documentation of this file.
1 <?php
2 
19 declare(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 }
getSrcPoolDefListRelatedQuestUniqueCollection(ilTestRandomQuestionSetSourcePoolDefinitionList $sourcePoolDefinitionList)
handleQuestionOrdering(ilTestRandomQuestionSetQuestionCollection $questionSet)
fetchQuestionsFromStageRandomly(ilTestRandomQuestionSetQuestionCollection $questionStage, $requiredQuestionAmount)
storeQuestionSet(ilTestSession $testSession, $questionSet)