Thiemo Mättig (WMDE) has uploaded a new change for review. https://gerrit.wikimedia.org/r/157683
Change subject: Make ItemSerializerTest compatible to DataModel 1.0 ...................................................................... Make ItemSerializerTest compatible to DataModel 1.0 Change-Id: I17a6cdd8d267487cb2642dfff976c2f96667ea9c --- M lib/tests/phpunit/serializers/EntitySerializerBaseTest.php M lib/tests/phpunit/serializers/ItemSerializerTest.php 2 files changed, 150 insertions(+), 151 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase refs/changes/83/157683/1 diff --git a/lib/tests/phpunit/serializers/EntitySerializerBaseTest.php b/lib/tests/phpunit/serializers/EntitySerializerBaseTest.php index f5eae6b..9b23122 100644 --- a/lib/tests/phpunit/serializers/EntitySerializerBaseTest.php +++ b/lib/tests/phpunit/serializers/EntitySerializerBaseTest.php @@ -3,12 +3,7 @@ namespace Wikibase\Test; use DataValues\StringValue; -use Wikibase\DataModel\Claim\Claim; use Wikibase\DataModel\Entity\Entity; -use Wikibase\DataModel\Entity\PropertyId; -use Wikibase\DataModel\Snak\PropertyValueSnak; -use Wikibase\Lib\ClaimGuidGenerator; -use Wikibase\Lib\Serializers\EntitySerializer; use Wikibase\Lib\Serializers\SerializationOptions; /** @@ -35,150 +30,6 @@ protected function getInstance() { $class = $this->getClass(); return new $class( new SerializationOptions() ); - } - - /** - * Returns arguments for entity agnostic arguments that can be returned - * by validProvider after making sure the provided serialization contains - * anything the entity implementing class requires. - * - * @since 0.2 - * - * @return array - */ - protected function semiValidProvider() { - $entity = $this->getEntityInstance(); - - $validArgs = array(); - - $options = new SerializationOptions(); - $options->setOption( EntitySerializer::OPT_PARTS, array( 'aliases' ) ); - - $entity0 = $entity->copy(); - $entity0->setAliases( 'en', array( 'foo', 'bar' ) ); - $entity0->setAliases( 'de', array( 'baz', 'bah' ) ); - - $validArgs[] = array( - $entity0, - array( - 'id' => $entity0->getId()->getSerialization(), - 'type' => $entity0->getType(), - 'aliases' => array( - 'en' => array( - array( - 'value' => 'foo', - 'language' => 'en', - ), - array( - 'value' => 'bar', - 'language' => 'en', - ), - ), - 'de' => array( - array( - 'value' => 'baz', - 'language' => 'de', - ), - array( - 'value' => 'bah', - 'language' => 'de', - ), - ), - ) - ), - $options - ); - - $options = new SerializationOptions(); - $options->setOption( EntitySerializer::OPT_PARTS, array( 'descriptions', 'labels' ) ); - - $entity1 = $entity->copy(); - $entity1->setLabel( 'en', 'foo' ); - $entity1->setLabel( 'de', 'bar' ); - $entity1->setDescription( 'en', 'baz' ); - $entity1->setDescription( 'de', 'bah' ); - - $validArgs[] = array( - $entity1, - array( - 'id' => $entity1->getId()->getSerialization(), - 'type' => $entity1->getType(), - 'labels' => array( - 'en' => array( - 'value' => 'foo', - 'language' => 'en', - ), - 'de' => array( - 'value' => 'bar', - 'language' => 'de', - ), - ), - 'descriptions' => array( - 'en' => array( - 'value' => 'baz', - 'language' => 'en', - ), - 'de' => array( - 'value' => 'bah', - 'language' => 'de', - ), - ), - ), - $options - ); - - $entity2 = $this->getEntityInstance(); - - $options->setOption( - EntitySerializer::OPT_PARTS, - array( 'descriptions', 'labels', 'claims', 'aliases' ) - ); - - $claim = new Claim( - new PropertyValueSnak( - new PropertyId( 'P42' ), - new StringValue( 'foobar!' ) - ) - ); - - $guidGenerator = new ClaimGuidGenerator(); - $claim->setGuid( $guidGenerator->newGuid( $entity2->getId() ) ); - - $entity2->setLabel( 'en', 'foo' ); - $entity2->addClaim( $claim ); - - $validArgs[] = array( - $entity2, - array( - 'id' => $entity2->getId()->getSerialization(), - 'type' => $entity2->getType(), - 'labels' => array( - 'en' => array( - 'language' => 'en', - 'value' => 'foo', - ) - ), - 'claims' => array( - 'P42' => array( - array( - 'id' => $claim->getGuid(), - 'mainsnak' => array( - 'snaktype' => 'value', - 'property' => 'P42', - 'datavalue' => array( - 'value' => 'foobar!', - 'type' => 'string' - ) - ), - 'type' => 'claim' - ) - ) - ) - ), - $options - ); - - return $validArgs; } } diff --git a/lib/tests/phpunit/serializers/ItemSerializerTest.php b/lib/tests/phpunit/serializers/ItemSerializerTest.php index f99b216..21a6bed 100644 --- a/lib/tests/phpunit/serializers/ItemSerializerTest.php +++ b/lib/tests/phpunit/serializers/ItemSerializerTest.php @@ -2,8 +2,13 @@ namespace Wikibase\Test; +use DataValues\StringValue; use SiteSQLStore; +use Wikibase\DataModel\Claim\Statement; use Wikibase\DataModel\Entity\Item; +use Wikibase\DataModel\Entity\PropertyId; +use Wikibase\DataModel\Snak\PropertyValueSnak; +use Wikibase\Lib\ClaimGuidGenerator; use Wikibase\Lib\Serializers\ClaimSerializer; use Wikibase\Lib\Serializers\EntitySerializer; use Wikibase\Lib\Serializers\ItemSerializer; @@ -28,7 +33,7 @@ * @return string */ protected function getClass() { - return '\Wikibase\Lib\Serializers\ItemSerializer'; + return 'Wikibase\Lib\Serializers\ItemSerializer'; } /** @@ -53,7 +58,7 @@ /** * @see SerializerBaseTest::validProvider * - * @return array + * @return array[] */ public function validProvider() { $validArgs = array(); @@ -89,4 +94,147 @@ return $validArgs; } + /** + * Returns arguments for entity agnostic arguments that can be returned + * by validProvider after making sure the provided serialization contains + * anything the entity implementing class requires. + * + * @return array[] + */ + protected function semiValidProvider() { + $item = $this->getEntityInstance(); + + $validArgs = array(); + + $options = new SerializationOptions(); + $options->setOption( EntitySerializer::OPT_PARTS, array( 'aliases' ) ); + + $item0 = $item->copy(); + $item0->setAliases( 'en', array( 'foo', 'bar' ) ); + $item0->setAliases( 'de', array( 'baz', 'bah' ) ); + + $validArgs[] = array( + $item0, + array( + 'id' => $item0->getId()->getSerialization(), + 'type' => $item0->getType(), + 'aliases' => array( + 'en' => array( + array( + 'value' => 'foo', + 'language' => 'en', + ), + array( + 'value' => 'bar', + 'language' => 'en', + ), + ), + 'de' => array( + array( + 'value' => 'baz', + 'language' => 'de', + ), + array( + 'value' => 'bah', + 'language' => 'de', + ), + ), + ) + ), + $options + ); + + $options = new SerializationOptions(); + $options->setOption( EntitySerializer::OPT_PARTS, array( 'descriptions', 'labels' ) ); + + $item1 = $item->copy(); + $item1->setLabel( 'en', 'foo' ); + $item1->setLabel( 'de', 'bar' ); + $item1->setDescription( 'en', 'baz' ); + $item1->setDescription( 'de', 'bah' ); + + $validArgs[] = array( + $item1, + array( + 'id' => $item1->getId()->getSerialization(), + 'type' => $item1->getType(), + 'labels' => array( + 'en' => array( + 'value' => 'foo', + 'language' => 'en', + ), + 'de' => array( + 'value' => 'bar', + 'language' => 'de', + ), + ), + 'descriptions' => array( + 'en' => array( + 'value' => 'baz', + 'language' => 'en', + ), + 'de' => array( + 'value' => 'bah', + 'language' => 'de', + ), + ), + ), + $options + ); + + $item2 = $this->getEntityInstance(); + + $options->setOption( + EntitySerializer::OPT_PARTS, + array( 'descriptions', 'labels', 'claims', 'aliases' ) + ); + + $statement = new Statement( + new PropertyValueSnak( + new PropertyId( 'P42' ), + new StringValue( 'foobar!' ) + ) + ); + + $guidGenerator = new ClaimGuidGenerator(); + $statement->setGuid( $guidGenerator->newGuid( $item2->getId() ) ); + + $item2->setLabel( 'en', 'foo' ); + $item2->addClaim( $statement ); + + $validArgs[] = array( + $item2, + array( + 'id' => $item2->getId()->getSerialization(), + 'type' => $item2->getType(), + 'labels' => array( + 'en' => array( + 'language' => 'en', + 'value' => 'foo', + ) + ), + 'claims' => array( + 'P42' => array( + array( + 'id' => $statement->getGuid(), + 'mainsnak' => array( + 'snaktype' => 'value', + 'property' => 'P42', + 'datavalue' => array( + 'value' => 'foobar!', + 'type' => 'string' + ) + ), + 'type' => 'statement', + 'rank' => 'normal', + ) + ) + ) + ), + $options + ); + + return $validArgs; + } + } -- To view, visit https://gerrit.wikimedia.org/r/157683 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I17a6cdd8d267487cb2642dfff976c2f96667ea9c Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/Wikibase Gerrit-Branch: master Gerrit-Owner: Thiemo Mättig (WMDE) <thiemo.maet...@wikimedia.de> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits