public function testChunkedTriples()
 {
     $expNsResource = new ExpNsResource('Redirect', Exporter::getInstance()->getNamespaceUri('wiki'), 'Redirect');
     $semanticData = new SemanticData(new DIWikiPage('Foo', NS_MAIN));
     $redirectLookup = $this->getMockBuilder('\\SMW\\SPARQLStore\\RedirectLookup')->disableOriginalConstructor()->getMock();
     $redirectLookup->expects($this->atLeastOnce())->method('findRedirectTargetResource')->will($this->returnValue($expNsResource));
     $instance = new TurtleTriplesBuilder($semanticData, $redirectLookup);
     $instance->setTriplesChunkSize(1);
     $this->assertInternalType('array', $instance->getChunkedTriples());
 }
예제 #2
0
 /**
  * Update the Sparql back-end, without taking any subobject data into account.
  *
  * @param SemanticData $semanticData
  */
 private function doSparqlFlatDataUpdate(SemanticData $semanticData)
 {
     $turtleTriplesBuilder = new TurtleTriplesBuilder($semanticData, new RedirectLookup($this->getConnection()));
     $turtleTriplesBuilder->setTriplesChunkSize(80);
     if (!$turtleTriplesBuilder->hasTriplesForUpdate()) {
         return;
     }
     if ($semanticData->getSubject()->getSubobjectName() === '') {
         $this->doSparqlDataDelete($semanticData->getSubject());
     }
     foreach ($turtleTriplesBuilder->getChunkedTriples() as $chunkedTriples) {
         $this->getConnection()->insertData($chunkedTriples, $turtleTriplesBuilder->getPrefixes());
     }
 }