public static function setUpBeforeClass() { $itemClass = \taoItems_models_classes_ItemsService::singleton()->getRootClass(); // Register Metadata ClassLookup. \oat\taoQtiItem\model\qti\Service::singleton()->getMetadataRegistry()->registerMetadataClassLookup('oat\\taoQtiItem\\model\\qti\\metadata\\classLookups\\LabelClassLookup'); // Register Metadata Extractor. \oat\taoQtiItem\model\qti\Service::singleton()->getMetadataRegistry()->registerMetadataExtractor('oat\\taoQtiItem\\model\\qti\\metadata\\imsManifest\\ImsManifestMetadataExtractor'); // Create fake class. \core_kernel_classes_ClassFactory::createSubClass($itemClass, 'mytestclasslabel', 'mytestclasslabel', 'http://www.test.com#mytestclass'); // Import myTestClassLabel sample... $samplePath = dirname(__FILE__) . '/../samples/metadata/metadataClassLookups/mytestclasslabel.zip'; $report = \oat\taoQtiItem\model\qti\ImportService::singleton()->importQTIPACKFile($samplePath, $itemClass, true); $successes = $report->getSuccesses(); self::$itemResource = $successes[0]->getData(); }
public function testGetInstancesPropertyValuesWithResourceProperties() { // create a class $class = new core_kernel_classes_Class(CLASS_GENERIS_RESOURCE); $subClass = $class->createSubClass('GetInstancesPropertyValuesClass', 'GetInstancesPropertyValues_Class'); // create a first property for this class $p1 = core_kernel_classes_ClassFactory::createProperty($subClass, 'GetInstancesPropertyValues_Property1', 'GetInstancesPropertyValues_Property1', false, LOCAL_NAMESPACE . "#P1"); $p1->setRange(new core_kernel_classes_Class(GENERIS_BOOLEAN)); // create a second property for this class $p2 = core_kernel_classes_ClassFactory::createProperty($subClass, 'GetInstancesPropertyValues_Property2', 'GetInstancesPropertyValues_Property2', false, LOCAL_NAMESPACE . "#P2"); $p1->setRange(new core_kernel_classes_Class(GENERIS_BOOLEAN)); // create a second property for this class $p3 = core_kernel_classes_ClassFactory::createProperty($subClass, 'GetInstancesPropertyValues_Property3', 'GetInstancesPropertyValues_Property3', false, LOCAL_NAMESPACE . "#P3"); $p1->setRange(new core_kernel_classes_Class(RDFS_LITERAL)); // $i1 $i1 = $subClass->createInstance("i1", "i1"); $i1->setPropertyValue($p1, GENERIS_TRUE); $i1->setPropertyValue($p2, new core_kernel_classes_Class(GENERIS_TRUE)); $i1->setPropertyValue($p3, "p31 litteral"); $i1->getLabel(); // $i2 $i2 = $subClass->createInstance("i2", "i2"); $i2->setPropertyValue($p1, GENERIS_TRUE); $i2->setPropertyValue($p2, new core_kernel_classes_Class(GENERIS_FALSE)); $i2->setPropertyValue($p3, "p31 litteral"); $i2->getLabel(); // Search * P1 for P1=GENERIS_TRUE // Expected 2 results, but 1 possibility $propertyFilters = array(LOCAL_NAMESPACE . "#P1" => GENERIS_TRUE); $result = $subClass->getInstancesPropertyValues($p1, $propertyFilters); $this->assertEquals(count($result), 2); foreach ($result as $property) { $this->assertTrue($property->getUri() == GENERIS_TRUE); } // Search * P1 for P1=GENERIS_TRUE WITH DISTINCT options // Expected 1 results, and 1 possibility $propertyFilters = array(LOCAL_NAMESPACE . "#P1" => GENERIS_TRUE); $result = $subClass->getInstancesPropertyValues($p1, $propertyFilters, array("distinct" => true)); $this->assertEquals(count($result), 1); $this->assertTrue($result[0]->getUri() == GENERIS_TRUE); // Search * P2 for P1=GENERIS_TRUE WITH DISTINCT options // Expected 2 results, and 2 possibilities $propertyFilters = array(LOCAL_NAMESPACE . "#P1" => GENERIS_TRUE); $result = $subClass->getInstancesPropertyValues($p2, $propertyFilters, array("distinct" => true)); $this->assertEquals(count($result), 2); foreach ($result as $property) { $this->assertTrue($property->getUri() == GENERIS_TRUE || $property->getUri() == GENERIS_FALSE); } // Search * P2 for P1=NotExistingProperty litteral WITH DISTINCT options // Expected 1 results, and 1 possibilities $propertyFilters = array(LOCAL_NAMESPACE . "#P1" => "NotExistingProperty"); $result = $subClass->getInstancesPropertyValues($p2, $propertyFilters, array("distinct" => true)); $this->assertEquals(count($result), 0); // Search * P1 for P2=GENERIS_TRUE litteral WITH DISTINCT options // Expected 1 results, and 1 possibilities $propertyFilters = array(LOCAL_NAMESPACE . "#P2" => GENERIS_TRUE); $result = $subClass->getInstancesPropertyValues($p1, $propertyFilters, array("distinct" => true)); $this->assertEquals(count($result), 1); $this->assertTrue($result[0]->getUri() == GENERIS_TRUE); // Search * P1 for P2=GENERIS_FALSE WITH DISTINCT options // Expected 1 results, and 1 possibilities $propertyFilters = array(LOCAL_NAMESPACE . "#P2" => GENERIS_FALSE); $result = $subClass->getInstancesPropertyValues($p1, $propertyFilters, array("distinct" => true)); $this->assertEquals(count($result), 1); $this->assertTrue($result[0]->getUri() == GENERIS_TRUE); // Search * P3 for P1=GENERIS_TRUE & P2=GENERIS_TRUE litteral WITH DISTINCT options // Expected 1 results, and 1 possibilities $propertyFilters = array(LOCAL_NAMESPACE . "#P1" => GENERIS_TRUE, LOCAL_NAMESPACE . "#P2" => GENERIS_TRUE); $result = $subClass->getInstancesPropertyValues($p3, $propertyFilters, array("distinct" => true)); $this->assertEquals(count($result), 1); $this->assertTrue(in_array("p31 litteral", $result)); // Search * P2 for P1=P11 & P3=P31 litteral WITH DISTINCT options // Expected 2 results, and 2 possibilities $propertyFilters = array(LOCAL_NAMESPACE . "#P1" => GENERIS_TRUE, LOCAL_NAMESPACE . "#P3" => "p31 litteral"); $result = $subClass->getInstancesPropertyValues($p2, $propertyFilters, array("distinct" => true)); $this->assertEquals(count($result), 2); foreach ($result as $property) { $this->assertTrue($property->getUri() == GENERIS_TRUE || $property->getUri() == GENERIS_FALSE); } // Clean the model $i1->delete(); $i2->delete(); $p1->delete(); $p2->delete(); $p3->delete(); $subClass->delete(); }