/** * * @param tao_models_classes_service_StorageDirectory $private * @return tao_models_classes_service_ServiceCall */ protected function buildServiceCall(\tao_models_classes_service_StorageDirectory $private) { $service = new tao_models_classes_service_ServiceCall(new core_kernel_classes_Resource(self::TESTRUNNER_SERVICE)); $param = new \tao_models_classes_service_ConstantParameter(new core_kernel_classes_Resource(self::TESTRUNNER_PARAMETER), $private->getId()); $service->addInParameter($param); return $service; }
/** * @param string $id * @return tao_models_classes_service_StorageDirectory */ public function getDirectoryById($id) { $public = $id[strlen($id) - 1] == '+'; $path = $this->id2path($id); $dir = new tao_models_classes_service_StorageDirectory($id, $this->getFsId($public), $path, $public ? $this->getAccessProvider() : null); $dir->setServiceLocator($this->getServiceLocator()); return $dir; }
/** * @param string $data name of the assert * * @return string * @throws ExceptionMissingAsset */ public function encode($data) { //skip if external resource if (filter_var($data, FILTER_VALIDATE_URL)) { return $data; } $file = $this->directory->getFile($data); if ($file->exists()) { return sprintf(self::DATA_PREFIX, $file->getMimeType(), base64_encode($file->read())); } throw new ExceptionMissingAsset('Assets ' . $data . ' not found at ' . $file->getPrefix()); }
public function testGetPath() { $reflectionClass = new \ReflectionClass(AbstractAdapter::class); $reflectionProperty = $reflectionClass->getProperty('pathPrefix'); $reflectionProperty->setAccessible(true); $path = $reflectionProperty->getValue($this->fileSystem->getAdapter()) . $this->pathFixture; $this->assertEquals($path, $this->instance->getPath()); }
/** * Create the item's ServiceCall. * * @param core_kernel_classes_Resource $item * @param tao_models_classes_service_StorageDirectory $destinationDirectory * @return tao_models_classes_service_ServiceCall */ protected function createService(core_kernel_classes_Resource $item, tao_models_classes_service_StorageDirectory $destinationDirectory) { $service = new tao_models_classes_service_ServiceCall(new core_kernel_classes_Resource(INSTANCE_SERVICE_ITEMRUNNER)); $service->addInParameter(new tao_models_classes_service_ConstantParameter(new core_kernel_classes_Resource(INSTANCE_FORMALPARAM_ITEMPATH), $destinationDirectory->getId())); $service->addInParameter(new tao_models_classes_service_ConstantParameter(new core_kernel_classes_Resource(INSTANCE_FORMALPARAM_ITEMURI), $item)); return $service; }
/** * @param core_kernel_classes_Resource $item the item to pack * @param string $lang * @param Item $qtiItem * @param \oat\oatbox\filesystem\Directory $directory * @return ItemPack $itemPack * @throws common_Exception */ public function packQtiItem($item, $lang, $qtiItem, Directory $directory) { //use the QtiParser to transform the QTI XML into an assoc array representation try { //build the ItemPack from the parsed data if ($this->replaceXinclude) { $resolver = new ItemMediaResolver($item, $lang); $xincludeLoader = new XIncludeLoader($qtiItem, $resolver); $xincludeLoader->load(true); } $itemPack = new ItemPack(self::$itemType, $qtiItem->toArray()); $itemPack->setAssetEncoders($this->getAssetEncoders()); $assetParser = new AssetParser($qtiItem, $directory); $assetParser->setDeepParsing($this->isNestedResourcesInclusion()); $assetParser->setGetXinclude(!$this->replaceXinclude); $storageDirectory = new \tao_models_classes_service_StorageDirectory($item->getUri(), $directory->getFileSystemId(), $directory->getPrefix() . '/' . $lang); $storageDirectory->setServiceLocator($directory->getServiceLocator()); foreach ($assetParser->extract($itemPack) as $type => $assets) { $resolver = new ItemMediaResolver($item, $lang); foreach ($assets as &$asset) { $mediaAsset = $resolver->resolve($asset); $mediaSource = $mediaAsset->getMediaSource(); $asset = $mediaSource->getBaseName($mediaAsset->getMediaIdentifier()); } $itemPack->setAssets($type, $assets, $storageDirectory); } } catch (common_Exception $e) { throw new common_Exception('Unable to pack item ' . $item->getUri() . ' : ' . $e->getMessage()); } return $itemPack; }