getRootClass(); /** @var MetadataService $test */ $serviceLocator = ServiceManager::getServiceManager(); $importer = new MetadataImporter(); $importer->setOptions([ MetadataImporter::CLASS_LOOKUP_KEY => ['oat\taoQtiItem\model\qti\metadata\classLookups\LabelClassLookup'], MetadataImporter::EXTRACTOR_KEY => ['oat\taoQtiItem\model\qti\metadata\imsManifest\ImsManifestMetadataExtractor'], MetadataImporter::GUARDIAN_KEY => ['oat\taoQtiItem\model\qti\metadata\guardians\LomIdentifierGuardian'], ]); $metadataService = $this->getMockBuilder(MetadataService::class) ->disableOriginalConstructor() ->setMethods(['getImporter']) ->getMock(); $metadataService->expects($this->once()) ->method('getImporter') ->willReturn($importer); $serviceLocator->overload(MetadataService::SERVICE_ID, $metadataService); /** @var ImportService $importService */ $importService = $serviceLocator->get(ImportService::SERVICE_ID); $this->setInaccessibleProperty($importService, 'metadataImporter', null); // Create fake class. $class = new core_kernel_classes_Class(OntologyRdfs::RDFS_CLASS); $instance = new core_kernel_classes_Class('http://www.test.com#mytestclass'); $propertiesValues = [ OntologyRdf::RDF_TYPE => $class->getUri(), OntologyRdfs::RDFS_LABEL => 'mytestclasslabel', OntologyRdfs::RDFS_COMMENT => 'mytestclasslabel', ]; $instance->setPropertiesValues($propertiesValues); $returnValue = new core_kernel_classes_Class($instance->getUri()); $returnValue->setSubClassOf($itemClass); // Import myTestClassLabel sample... $samplePath = dirname(__FILE__) . '/../samples/metadata/metadataClassLookups/mytestclasslabel.zip'; $report = $importService->importQTIPACKFile($samplePath, $itemClass, true); $successes = $report->getSuccesses(); $this->assertCount(1, $successes); $itemResource = $successes[0]->getData(); $class = new \core_kernel_classes_Class('http://www.test.com#mytestclass'); $this->assertEquals(1, $class->countInstances()); \taoItems_models_classes_ItemsService::singleton()->deleteItem($itemResource); // Delete fake class $class = new \core_kernel_classes_Class('http://www.test.com#mytestclass'); $class->delete(true); } }