/** * * @author Lionel Lecaque, lionel@taotesting.com */ public function testGetItemVariableDataFromDeliveryResult() { $prophet = new Prophet(); $impProphecy = $prophet->prophesize('oat\\taoOutcomeRds\\model\\RdsResultStorage'); $impProphecy->getRelatedItemCallIds('#fakeUri')->willReturn(array('#itemsResults1' => '#itemResultVariable', '#itemsResults2' => '#itemResultVariable2', '#itemsResults3' => '#itemResultVariable3')); $item = new \stdClass(); $item->item = '#item'; $item->uri = '#uri'; $var = new \taoResultServer_models_classes_TraceVariable(); $var->setEpoch(microtime()); $var->setIdentifier('varIdentifier'); $item->variable = $var; $item2 = new \stdClass(); $item2->item = '#item2'; $item2->uri = '#uri2'; $var2 = new \taoResultServer_models_classes_ResponseVariable(); $var2->setEpoch(microtime()); $var2->setIdentifier('varIdentifier2'); // response correct $var2->setCorrectResponse(1); $item2->variable = $var2; $item3 = new \stdClass(); $item3->item = '#item3'; $item3->uri = '#uri3'; $var3 = new \taoResultServer_models_classes_ResponseVariable(); $var3->setEpoch(microtime()); $var3->setIdentifier('varIdentifier3'); // response incorrect $var3->setCorrectResponse(0); $item3->variable = $var3; $impProphecy->getVariables('#itemResultVariable')->willReturn(array(array($item))); $impProphecy->getVariables('#itemResultVariable2')->willReturn(array(array($item2))); $impProphecy->getVariables('#itemResultVariable3')->willReturn(array(array($item3))); $imp = $impProphecy->reveal(); $this->service->setImplementation($imp); $deliveryResultProphecy = $prophet->prophesize('core_kernel_classes_Resource'); $deliveryResultProphecy->getUri()->willReturn('#fakeUri'); $deliveryResult = $deliveryResultProphecy->reveal(); $itemVar = $this->service->getItemVariableDataFromDeliveryResult($deliveryResult, 'lastSubmitted'); $this->assertArrayHasKey('#item', $itemVar); $this->assertArrayHasKey('itemModel', $itemVar['#item']); $this->assertEquals('unknown', $itemVar['#item']['itemModel']); $this->assertArrayHasKey('sortedVars', $itemVar['#item']); $this->assertArrayHasKey('taoResultServer_models_classes_TraceVariable', $itemVar['#item']['sortedVars']); $this->assertArrayHasKey('varIdentifier', $itemVar['#item']['sortedVars']['taoResultServer_models_classes_TraceVariable']); $this->assertArrayHasKey('uri', $itemVar['#item']['sortedVars']['taoResultServer_models_classes_TraceVariable']['varIdentifier'][0]); $this->assertEquals('#uri', $itemVar['#item']['sortedVars']['taoResultServer_models_classes_TraceVariable']['varIdentifier'][0]['uri']); $this->assertArrayHasKey('isCorrect', $itemVar['#item']['sortedVars']['taoResultServer_models_classes_TraceVariable']['varIdentifier'][0]); $this->assertEquals('unscored', $itemVar['#item']['sortedVars']['taoResultServer_models_classes_TraceVariable']['varIdentifier'][0]['isCorrect']); $this->assertArrayHasKey('var', $itemVar['#item']['sortedVars']['taoResultServer_models_classes_TraceVariable']['varIdentifier'][0]); $this->assertInstanceOf('taoResultServer_models_classes_TraceVariable', $itemVar['#item']['sortedVars']['taoResultServer_models_classes_TraceVariable']['varIdentifier'][0]['var']); $this->assertEquals($var, $itemVar['#item']['sortedVars']['taoResultServer_models_classes_TraceVariable']['varIdentifier'][0]['var']); $this->assertArrayHasKey('label', $itemVar['#item']); // item2 $this->assertArrayHasKey('#item2', $itemVar); $this->assertArrayHasKey('itemModel', $itemVar['#item2']); $this->assertEquals('unknown', $itemVar['#item2']['itemModel']); $this->assertArrayHasKey('sortedVars', $itemVar['#item2']); $this->assertArrayHasKey('taoResultServer_models_classes_ResponseVariable', $itemVar['#item2']['sortedVars']); $this->assertArrayHasKey('varIdentifier2', $itemVar['#item2']['sortedVars']['taoResultServer_models_classes_ResponseVariable']); $this->assertArrayHasKey('uri', $itemVar['#item2']['sortedVars']['taoResultServer_models_classes_ResponseVariable']['varIdentifier2'][0]); $this->assertEquals('#uri2', $itemVar['#item2']['sortedVars']['taoResultServer_models_classes_ResponseVariable']['varIdentifier2'][0]['uri']); $this->assertArrayHasKey('isCorrect', $itemVar['#item2']['sortedVars']['taoResultServer_models_classes_ResponseVariable']['varIdentifier2'][0]); $this->assertEquals('correct', $itemVar['#item2']['sortedVars']['taoResultServer_models_classes_ResponseVariable']['varIdentifier2'][0]['isCorrect']); // item3 $this->assertArrayHasKey('#item3', $itemVar); $this->assertArrayHasKey('itemModel', $itemVar['#item3']); $this->assertEquals('unknown', $itemVar['#item3']['itemModel']); $this->assertArrayHasKey('sortedVars', $itemVar['#item3']); $this->assertArrayHasKey('taoResultServer_models_classes_ResponseVariable', $itemVar['#item3']['sortedVars']); $this->assertArrayHasKey('varIdentifier3', $itemVar['#item3']['sortedVars']['taoResultServer_models_classes_ResponseVariable']); $this->assertArrayHasKey('uri', $itemVar['#item3']['sortedVars']['taoResultServer_models_classes_ResponseVariable']['varIdentifier3'][0]); $this->assertEquals('#uri3', $itemVar['#item3']['sortedVars']['taoResultServer_models_classes_ResponseVariable']['varIdentifier3'][0]['uri']); $this->assertArrayHasKey('isCorrect', $itemVar['#item3']['sortedVars']['taoResultServer_models_classes_ResponseVariable']['varIdentifier3'][0]); $this->assertEquals('incorrect', $itemVar['#item3']['sortedVars']['taoResultServer_models_classes_ResponseVariable']['varIdentifier3'][0]['isCorrect']); }
/** * Get trace variable instance to save. * * @param string $identifier * @param string $value * @return \taoResultServer_models_classes_TraceVariable variable instance to save. */ private function getVariable($identifier, $value) { $metaVariable = new \taoResultServer_models_classes_TraceVariable(); $metaVariable->setIdentifier($identifier); $metaVariable->setBaseType('string'); $metaVariable->setCardinality(Cardinality::getNameByConstant(Cardinality::SINGLE)); $metaVariable->setTrace($value); return $metaVariable; }
/** * return a Trace Variable with informations from the request itselfs */ private function getRequestDetails() { $dom = new DOMDocument('1.0', 'utf-8'); $element = $dom->createElement('agent'); $dom->appendChild($element); foreach ($_SERVER as $key => $agentDetail) { if (is_string($agentDetail)) { $node = $dom->createElement($key); $cdata = $dom->createCDATASection($agentDetail); $node->appendChild($cdata); $element->appendChild($node); } } //$dom->formatOutput = true; // array_walk_recursive($_SERVER, array ($xml, 'addChild')); $traceVariable = new taoResultServer_models_classes_TraceVariable(); $traceVariable->setIdentifier("User Agent Details"); $traceVariable->setTrace($dom->saveXML()); return $traceVariable; }