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();
 }
Example #2
0
 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();
 }