jenkins-bot has submitted this change and it was merged.
Change subject: Remove hardcoded ids from SetClaimTest
......................................................................
Remove hardcoded ids from SetClaimTest
Change-Id: I338337fd788797d647b1f931eac0601155d38548
---
M repo/tests/phpunit/includes/api/SetClaimTest.php
1 file changed, 74 insertions(+), 81 deletions(-)
Approvals:
Hoo man: Looks good to me, approved
jenkins-bot: Verified
diff --git a/repo/tests/phpunit/includes/api/SetClaimTest.php
b/repo/tests/phpunit/includes/api/SetClaimTest.php
index ed94dbd..48f7e10 100644
--- a/repo/tests/phpunit/includes/api/SetClaimTest.php
+++ b/repo/tests/phpunit/includes/api/SetClaimTest.php
@@ -2,6 +2,7 @@
namespace Wikibase\Test\Api;
+use DataValues\StringValue;
use FormatJson;
use Wikibase\Claim;
use Wikibase\Claims;
@@ -42,54 +43,45 @@
*/
class SetClaimTest extends WikibaseApiTestCase {
- public function setUp() {
+ private static $propertyIds;
+
+ protected function setUp() {
parent::setUp();
- static $hasProperties = false;
-
- if ( !$hasProperties ) {
- // Create the properties once
- $propertyIds = self::getPropertyIds();
-
- foreach( $propertyIds as $propertyId ) {
- $prop = PropertyContent::newEmpty();
- $prop->getEntity()->setId( $propertyId );
- $prop->getEntity()->setDataTypeId( 'string' );
- $prop->save( 'testing' );
- }
-
- $hasProperties = true;
+ if ( !self::$propertyIds ) {
+ self::$propertyIds = $this->getPropertyIds();
}
}
- /**
- * @return PropertyId[]
- */
- protected static function getPropertyIds() {
- return array(
- new PropertyId( 'P42' ),
- new PropertyId( 'P9001' ),
- new PropertyId( 'P7201010' )
- );
+ private function getPropertyIds() {
+ $propertyIds = array();
+
+ for( $i = 0; $i < 4; $i++ ) {
+ $propertyContent = PropertyContent::newEmpty();
+ $propertyContent->getProperty()->setDataTypeId(
'string' );
+ $propertyContent->save( 'testing', null, EDIT_NEW );
+
+ $propertyIds[] =
$propertyContent->getProperty()->getId();
+ }
+
+ return $propertyIds;
}
/**
* @return Snak[]
*/
- protected static function snakProvider() {
- $propertyIds = self::getPropertyIds();
-
+ private function getSnaks() {
$snaks = array();
- $snaks[] = new PropertyNoValueSnak( $propertyIds[0] );
- $snaks[] = new PropertySomeValueSnak( $propertyIds[1] );
- $snaks[] = new PropertyValueSnak( $propertyIds[2], new
\DataValues\StringValue( 'o_O' ) );
+ $snaks[] = new PropertyNoValueSnak( self::$propertyIds[0] );
+ $snaks[] = new PropertySomeValueSnak( self::$propertyIds[1] );
+ $snaks[] = new PropertyValueSnak( self::$propertyIds[2], new
StringValue( 'o_O' ) );
return $snaks;
}
- public static function provideClaims() {
- $testCases = array();
+ private function getClaims() {
+ $claims = array();
$ranks = array(
Statement::RANK_DEPRECATED,
@@ -97,76 +89,74 @@
Statement::RANK_PREFERRED
);
- $snaks = self::snakProvider();
+ $snaks = $this->getSnaks();
+ $snakList = new SnakList( $snaks );
$mainSnak = $snaks[0];
$statement = new Statement( $mainSnak );
$statement->setRank( $ranks[array_rand( $ranks )] );
- $testCases[] = array( $statement );
+ $claims[] = $statement;
foreach ( $snaks as $snak ) {
$statement = clone $statement;
- $snaks = new SnakList( array( $snak ) );
- $statement->getReferences()->addReference( new
Reference( $snaks ) );
+ $statement->getReferences()->addReference( new
Reference( new SnakList( $snak ) ) );
$statement->setRank( $ranks[array_rand( $ranks )] );
- $testCases[] = array( $statement );
+ $claims[] = $statement;
}
$statement = clone $statement;
- $snaks = new SnakList( self::snakProvider() );
- $statement->getReferences()->addReference( new Reference(
$snaks ) );
+
+ $statement->getReferences()->addReference( new Reference(
$snakList ) );
$statement->setRank( $ranks[array_rand( $ranks )] );
- $testCases[] = array( $statement );
+ $claims[] = $statement;
$statement = clone $statement;
- $snaks = new SnakList( self::snakProvider() );
- $statement->setQualifiers( $snaks );
- $statement->getReferences()->addReference( new Reference(
$snaks ) );
+ $statement->setQualifiers( $snakList );
+ $statement->getReferences()->addReference( new Reference(
$snakList ) );
$statement->setRank( $ranks[array_rand( $ranks )] );
- $testCases[] = array( $statement );
+ $claims[] = $statement;
- return $testCases;
+ return $claims;
}
- /**
- * @dataProvider provideClaims
- */
- public function testAddClaim( Claim $claim ) {
- $item = Item::newEmpty();
- $content = new ItemContent( $item );
- $content->save( 'setclaimtest', null, EDIT_NEW );
+ public function testAddClaim() {
+ $claims = $this->getClaims();
- $guidGenerator = new ClaimGuidGenerator( $item->getId() );
- $guid = $guidGenerator->newGuid();
+ foreach( $claims as $claim ) {
+ $item = Item::newEmpty();
+ $content = new ItemContent( $item );
+ $content->save( 'setclaimtest', null, EDIT_NEW );
+ $itemId = $content->getItem()->getId();
- $claim->setGuid( $guid );
+ $guidGenerator = new ClaimGuidGenerator( $itemId );
+ $guid = $guidGenerator->newGuid();
- // Addition request
- $this->makeRequest( $claim, $item->getId(), 1, 'addition
request' );
+ $claim->setGuid( $guid );
- // Reorder qualifiers
- if( count( $claim->getQualifiers() ) > 0 ) {
- // Simply reorder the qualifiers by putting the first
qualifier to the end. This is
- // supposed to be done in the serialized representation
since changing the actual
- // object might apply intrinsic sorting.
- $serializerFactory = new SerializerFactory();
- $serializer =
$serializerFactory->newSerializerForObject( $claim );
- $serializedClaim = $serializer->getSerialized( $claim );
- $firstPropertyId = array_shift(
$serializedClaim['qualifiers-order'] );
- array_push( $serializedClaim['qualifiers-order'],
$firstPropertyId );
- $this->makeRequest( $serializedClaim, $item->getId(),
1, 'reorder qualifiers' );
+ // Addition request
+ $this->makeRequest( $claim, $itemId, 1, 'addition
request' );
+
+ // Reorder qualifiers
+ if( count( $claim->getQualifiers() ) > 0 ) {
+ // Simply reorder the qualifiers by putting the
first qualifier to the end. This is
+ // supposed to be done in the serialized
representation since changing the actual
+ // object might apply intrinsic sorting.
+ $serializerFactory = new SerializerFactory();
+ $serializer =
$serializerFactory->newSerializerForObject( $claim );
+ $serializedClaim = $serializer->getSerialized(
$claim );
+ $firstPropertyId = array_shift(
$serializedClaim['qualifiers-order'] );
+ array_push(
$serializedClaim['qualifiers-order'], $firstPropertyId );
+ $this->makeRequest( $serializedClaim, $itemId,
1, 'reorder qualifiers' );
+ }
+
+ $claim = new Statement( new PropertyNoValueSnak(
self::$propertyIds[1] ) );
+ $claim->setGuid( $guid );
+
+ // Update request
+ $this->makeRequest( $claim, $itemId, 1, 'update
request' );
}
-
- $claim = new Statement( new PropertyNoValueSnak( 9001 ) );
- $claim->setGuid( $guid );
-
- // Update request
- $this->makeRequest( $claim, $item->getId(), 1, 'update request'
);
}
- /**
- * @dataProvider provideClaims
- */
- public function testSetClaimAtIndex( Claim $claim ) {
+ public function testSetClaimAtIndex() {
// Generate an item with some claims:
$item = Item::newEmpty();
$claims = new Claims();
@@ -175,8 +165,9 @@
$item->setClaims( $claims );
$content = new ItemContent( $item );
$content->save( 'setclaimtest', null, EDIT_NEW );
+ $itemId = $content->getItem()->getId();
- $guidGenerator = new ClaimGuidGenerator( $item->getId() );
+ $guidGenerator = new ClaimGuidGenerator( $itemId );
for( $i = 1; $i <= 3; $i++ ) {
$preexistingClaim = $item->newClaim( new
PropertyNoValueSnak( $i ) );
@@ -191,9 +182,11 @@
// Add new claim at index 2:
$guid = $guidGenerator->newGuid();
- $claim->setGuid( $guid );
+ foreach( $this->getClaims() as $claim ) {
+ $claim->setGuid( $guid );
- $this->makeRequest( $claim, $item->getId(), 4, 'addition
request', 2 );
+ $this->makeRequest( $claim, $itemId, 4, 'addition
request', 2 );
+ }
}
/**
--
To view, visit https://gerrit.wikimedia.org/r/102919
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I338337fd788797d647b1f931eac0601155d38548
Gerrit-PatchSet: 8
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Aude <[email protected]>
Gerrit-Reviewer: Hoo man <[email protected]>
Gerrit-Reviewer: jenkins-bot
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits