107 lines
2.2 KiB
PHP
107 lines
2.2 KiB
PHP
<?php
|
|
|
|
namespace SMW\Tests\SPARQLStore;
|
|
|
|
use SMW\DIWikiPage;
|
|
use SMW\Exporter\Element\ExpNsResource;
|
|
use SMW\SemanticData;
|
|
use SMW\SPARQLStore\TurtleTriplesBuilder;
|
|
use SMW\Tests\PHPUnitCompat;
|
|
use SMWExporter as Exporter;
|
|
|
|
/**
|
|
* @covers \SMW\SPARQLStore\TurtleTriplesBuilder
|
|
* @group semantic-mediawiki
|
|
*
|
|
* @license GPL-2.0-or-later
|
|
* @since 2.0
|
|
*
|
|
* @author mwjames
|
|
*/
|
|
class TurtleTriplesBuilderTest extends \PHPUnit\Framework\TestCase {
|
|
|
|
use PHPUnitCompat;
|
|
|
|
private $repositoryRedirectLookup;
|
|
|
|
protected function setUp(): void {
|
|
parent::setUp();
|
|
|
|
$this->repositoryRedirectLookup = $this->getMockBuilder( '\SMW\SPARQLStore\RepositoryRedirectLookup' )
|
|
->disableOriginalConstructor()
|
|
->getMock();
|
|
}
|
|
|
|
public function testCanConstruct() {
|
|
$this->assertInstanceOf(
|
|
'\SMW\SPARQLStore\TurtleTriplesBuilder',
|
|
new TurtleTriplesBuilder( $this->repositoryRedirectLookup )
|
|
);
|
|
}
|
|
|
|
public function testBuildTriplesForEmptySemanticDataContainer() {
|
|
$expNsResource = new ExpNsResource(
|
|
'Redirect',
|
|
Exporter::getInstance()->getNamespaceUri( 'wiki' ),
|
|
'Redirect'
|
|
);
|
|
|
|
$semanticData = new SemanticData(
|
|
new DIWikiPage( 'Foo', NS_MAIN, '' )
|
|
);
|
|
|
|
$this->repositoryRedirectLookup->expects( $this->atLeastOnce() )
|
|
->method( 'findRedirectTargetResource' )
|
|
->willReturn( $expNsResource );
|
|
|
|
$instance = new TurtleTriplesBuilder(
|
|
$this->repositoryRedirectLookup
|
|
);
|
|
|
|
$instance->doBuildTriplesFrom( $semanticData );
|
|
|
|
$this->assertTrue(
|
|
$instance->hasTriples()
|
|
);
|
|
|
|
$this->assertIsString(
|
|
|
|
$instance->getTriples()
|
|
);
|
|
|
|
$this->assertIsArray(
|
|
|
|
$instance->getPrefixes()
|
|
);
|
|
}
|
|
|
|
public function testChunkedTriples() {
|
|
$expNsResource = new ExpNsResource(
|
|
'Redirect',
|
|
Exporter::getInstance()->getNamespaceUri( 'wiki' ),
|
|
'Redirect'
|
|
);
|
|
|
|
$semanticData = new SemanticData(
|
|
new DIWikiPage( 'Foo', NS_MAIN )
|
|
);
|
|
|
|
$this->repositoryRedirectLookup->expects( $this->atLeastOnce() )
|
|
->method( 'findRedirectTargetResource' )
|
|
->willReturn( $expNsResource );
|
|
|
|
$instance = new TurtleTriplesBuilder(
|
|
$this->repositoryRedirectLookup
|
|
);
|
|
|
|
$instance->setTriplesChunkSize( 1 );
|
|
$instance->doBuildTriplesFrom( $semanticData );
|
|
|
|
$this->assertIsArray(
|
|
|
|
$instance->getChunkedTriples()
|
|
);
|
|
}
|
|
|
|
}
|