public function testAddressing() { $state = new State(); $response = new ResponseVariable('RESPONSE', Cardinality::SINGLE, BaseType::INTEGER); $score = new OutcomeVariable('SCORE', Cardinality::SINGLE, BaseType::FLOAT); $state->setVariable($response); $state->setVariable($score); $this->assertTrue($state['foo'] === null); $this->assertTrue($response === $state->getVariable('RESPONSE')); $this->assertTrue($score === $state->getVariable('SCORE')); $this->assertTrue(isset($state['SCORE'])); $this->assertFalse(isset($state['SCOREX'])); }
public function testSimple() { $variableExpr = $this->createComponentFromXml('<variable identifier="var1"/>'); // single cardinality test. $var1 = new OutcomeVariable('var1', Cardinality::SINGLE, BaseType::INTEGER, new Integer(1337)); $state = new State(array($var1)); $this->assertInstanceOf('qtism\\runtime\\common\\OutcomeVariable', $state->getVariable('var1')); $variableProcessor = new VariableProcessor($variableExpr); $this->assertTrue($variableProcessor->process() === null); // State is raw. $variableProcessor->setState($state); // State is populated with var1. $result = $variableProcessor->process(); $this->assertInstanceOf('qtism\\common\\datatypes\\Integer', $result); $this->assertEquals(1337, $result->getValue()); // multiple cardinality test. $val = new OrderedContainer(BaseType::INTEGER, array(new Integer(10), new Integer(12))); $var2 = new OutcomeVariable('var2', Cardinality::ORDERED, BaseType::INTEGER, $val); $state->setVariable($var2); $variableExpr = $this->createComponentFromXml('<variable identifier="var2"/>'); $variableProcessor->setExpression($variableExpr); $result = $variableProcessor->process(); $this->assertInstanceOf('qtism\\runtime\\common\\OrderedContainer', $result); $this->assertEquals(10, $result[0]->getValue()); $this->assertEquals(12, $result[1]->getValue()); }