/** * @depends testVeryBasic */ public function testTemplateConstraintImpossibleWithTemplateVariableOnly() { $component = $this->createComponentFromXml(' <templateProcessing> <setTemplateValue identifier="TEMPLATE"> <baseValue baseType="integer">0</baseValue> </setTemplateValue> <templateConstraint> <gt> <variable identifier="TEMPLATE"/> <baseValue baseType="integer">0</baseValue> </gt> </templateConstraint> </templateProcessing> '); $var = new TemplateVariable('TEMPLATE', Cardinality::SINGLE, BaseType::INTEGER); $var->setDefaultValue(new QtiInteger(-1)); $state = new State(array($var)); // The <templateConstraint> will never be satisfied. // We should then find the default value in TEMPLATE. $engine = new TemplateProcessingEngine($component, $state); $engine->process(); $this->assertEquals(-1, $state['TEMPLATE']->getValue()); }
/** * Apply templateProcessing on the session if a templateProcessing is described. * * @throws \qtism\runtime\rules\RuleProcessingException * @return boolean Whether or not the template processing occured. */ protected function templateProcessing() { $assessmentItem = $this->getAssessmentItem(); if (($templateProcessing = $assessmentItem->getTemplateProcessing()) !== null) { $templateProcessingEngine = new TemplateProcessingEngine($templateProcessing, $this); $templateProcessingEngine->process(); return true; } else { return false; } }