diff options
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Integration/SemanticDataSerializationDBIntegrationTest.php')
-rw-r--r-- | www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Integration/SemanticDataSerializationDBIntegrationTest.php | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Integration/SemanticDataSerializationDBIntegrationTest.php b/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Integration/SemanticDataSerializationDBIntegrationTest.php new file mode 100644 index 00000000..e705afd9 --- /dev/null +++ b/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Integration/SemanticDataSerializationDBIntegrationTest.php @@ -0,0 +1,52 @@ +<?php + +namespace SMW\Tests\Integration; + +use SMW\DataValueFactory; +use SMW\DIWikiPage; +use SMW\SemanticData; +use SMW\SerializerFactory; +use SMW\Subobject; +use SMW\Tests\MwDBaseUnitTestCase; +use Title; + +/** + * @group semantic-mediawiki-integration + * @group medium + * + * @license GNU GPL v2+ + * @since 2.0 + * + * @author mwjames + */ +class SemanticDataSerializationDBIntegrationTest extends MwDBaseUnitTestCase { + + public function testRoundtripOfSerializedSemanticDataAfterStoreUpdate() { + + $subject = DIWikiPage::newFromTitle( Title::newFromText( __METHOD__ ) ); + $semanticDataBeforeUpdate = new SemanticData( $subject ); + + $subobject = new Subobject( $subject->getTitle() ); + $subobject->setEmptyContainerForId( 'SomeSubobjectToSerialize' ); + + $subobject->getSemanticData()->addDataValue( + DataValueFactory::getInstance()->newDataValueByText( 'Foo', 'Bar' ) + ); + + $semanticDataBeforeUpdate->addSubobject( $subobject ); + + $this->getStore()->updateData( $semanticDataBeforeUpdate ); + + $semanticDataAfterUpdate = $this->getStore()->getSemanticData( $subject ); + + $serializerFactory = new SerializerFactory(); + + $serialization = $serializerFactory->getSerializerFor( $semanticDataAfterUpdate )->serialize( $semanticDataAfterUpdate ); + + $this->assertEquals( + $semanticDataAfterUpdate->getHash(), + $serializerFactory->getDeserializerFor( $serialization )->deserialize( $serialization )->getHash() + ); + } + +} |