Addshore has uploaded a new change for review.
https://gerrit.wikimedia.org/r/94326
Change subject: Add extra test cases for merge changeops
......................................................................
Add extra test cases for merge changeops
Change-Id: I5a60e95d27f7d2729a28ae9b5dd49c64f3c0ec14
---
M repo/tests/phpunit/includes/ChangeOp/ChangeOpsMergeTest.php
1 file changed, 107 insertions(+), 89 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Wikibase
refs/changes/26/94326/1
diff --git a/repo/tests/phpunit/includes/ChangeOp/ChangeOpsMergeTest.php
b/repo/tests/phpunit/includes/ChangeOp/ChangeOpsMergeTest.php
index 6e1e73b..e54bc22 100644
--- a/repo/tests/phpunit/includes/ChangeOp/ChangeOpsMergeTest.php
+++ b/repo/tests/phpunit/includes/ChangeOp/ChangeOpsMergeTest.php
@@ -3,10 +3,8 @@
namespace Wikibase\Test;
use Wikibase\ChangeOp\ChangeOpsMerge;
-use Wikibase\Claims;
use Wikibase\DataModel\Entity\ItemId;
use Wikibase\DataModel\Internal\ObjectComparer;
-use Wikibase\DataModel\SimpleSiteLink;
use Wikibase\Item;
use Wikibase\ItemContent;
@@ -24,14 +22,14 @@
*/
class ChangeOpsMergeTest extends \PHPUnit_Framework_TestCase {
- public function testCanConstruct(){
+ public function testCanConstruct() {
$from = $this->getItemContent( 'Q111' );
$to = $this->getItemContent( 'Q222' );
$changeOps = new ChangeOpsMerge( $from, $to );
$this->assertInstanceOf( '\Wikibase\ChangeOp\ChangeOpsMerge',
$changeOps );
}
- public function getItemContent( $id, $data = array() ){
+ public function getItemContent( $id, $data = array() ) {
$item = new Item( $data );
$item->setId( new ItemId( $id ) );
$itemContent = new ItemContent( $item );
@@ -41,7 +39,7 @@
/**
* @dataProvider provideData
*/
- public function testCanApply( $fromData, $toData, $expectedFromData,
$expectedToData ){
+ public function testCanApply( $fromData, $toData, $expectedFromData,
$expectedToData ) {
$from = $this->getItemContent( 'Q111', $fromData );
$to = $this->getItemContent( 'Q222', $toData );
$changeOps = new ChangeOpsMerge( $from, $to );
@@ -79,95 +77,115 @@
$this->assertTrue( $comparer->dataEquals( $expectedToData,
$toData, array( 'entity' ) ) );
}
- public static function provideData(){
- return array(
- //check all elements move individually
- array(
- array( 'label' => array( 'en' => 'foo' ) ),
- array(),
- array(),
- array( 'label' => array( 'en' => 'foo' ) ),
- ),
- array(
- array( 'description' => array( 'en' => 'foo' )
),
- array(),
- array(),
- array( 'description' => array( 'en' => 'foo' )
),
- ),
- array(
- array( 'aliases' => array( 'en' => array(
'foo', 'bar' ) ) ),
- array(),
- array(),
- array( 'aliases' => array( 'en' => array(
'foo', 'bar' ) ) ),
- ),
- array(
- array( 'links' => array( 'enwiki' => array(
'name' => 'foo', 'badges' => array() ) ) ),
- array(),
- array(),
- array( 'links' => array( 'enwiki' => array(
'name' => 'foo', 'badges' => array() ) ) ),
- ),
- array(
- array( 'claims' => array(
- array(
- 'm' => array( 'novalue', 56 ),
- 'q' => array( ),
- 'g' =>
'Q111$D8404CDA-25E4-4334-AF13-A390BCD9C556' )
- ),
- ),
- array(),
- array(),
- array( 'claims' => array(
- array(
- 'm' => array( 'novalue', 56 ),
- 'q' => array( ) )
- ),
- ),
- ),
- array(
- array( 'claims' => array(
- array(
- 'm' => array( 'novalue', 56 ),
- 'q' => array( array(
'novalue', 56 ) ),
- 'g' =>
'Q111$D8404CDA-25E4-4334-AF13-A3290BCD9C0F' )
- ),
- ),
- array(),
- array(),
- array( 'claims' => array(
- array(
- 'm' => array( 'novalue', 56 ),
- 'q' => array( array(
'novalue', 56 ) ) )
- ),
- ),
- ),
- array(
+ /**
+ * @return array 1=>fromData 2=>toData 3=>expectedFromData
4=>expectedToData
+ */
+ public static function provideData() {
+ $testCases = array();
+ $testCases['labelMerge'] = array(
+ array( 'label' => array( 'en' => 'foo' ) ),
+ array(),
+ array(),
+ array( 'label' => array( 'en' => 'foo' ) ),
+ );
+ $testCases['identicalLabelMerge'] = array(
+ array( 'label' => array( 'en' => 'foo' ) ),
+ array( 'label' => array( 'en' => 'foo' ) ),
+ array(),
+ array( 'label' => array( 'en' => 'foo' ) ),
+ );
+ $testCases['descriptionMerge'] = array(
+ array( 'description' => array( 'en' => 'foo' ) ),
+ array(),
+ array(),
+ array( 'description' => array( 'en' => 'foo' ) ),
+ );
+ $testCases['identicalDescriptionMerge'] = array(
+ array( 'description' => array( 'en' => 'foo' ) ),
+ array( 'description' => array( 'en' => 'foo' ) ),
+ array(),
+ array( 'description' => array( 'en' => 'foo' ) ),
+ );
+ $testCases['aliasMerge'] = array(
+ array( 'aliases' => array( 'en' => array( 'foo', 'bar'
) ) ),
+ array(),
+ array(),
+ array( 'aliases' => array( 'en' => array( 'foo', 'bar'
) ) ),
+ );
+ $testCases['duplicateAliasMerge'] = array(
+ array( 'aliases' => array( 'en' => array( 'foo', 'bar'
) ) ),
+ array( 'aliases' => array( 'en' => array( 'foo', 'bar',
'baz' ) ) ),
+ array(),
+ array( 'aliases' => array( 'en' => array( 'foo',
'bar', 'baz' ) ) ),
+ );
+ $testCases['linkMerge'] = array(
+ array( 'links' => array( 'enwiki' => array( 'name' =>
'foo', 'badges' => array() ) ) ),
+ array(),
+ array(),
+ array( 'links' => array( 'enwiki' => array( 'name' =>
'foo', 'badges' => array() ) ) ),
+ );
+ $testCases['claimMerge'] = array(
+ array( 'claims' => array(
array(
- 'label' => array( 'en' => 'foo', 'pt'
=> 'ptfoo' ),
- 'description' => array( 'en' => 'foo',
'pl' => 'pldesc' ),
- 'aliases' => array( 'en' => array(
'foo', 'bar' ), 'de' => array( 'defoo', 'debar' ) ),
- 'links' => array( 'dewiki' => array(
'name' => 'foo', 'badges' => array() ) ),
- 'claims' => array(
- array(
- 'm' => array(
'novalue', 88 ),
- 'q' => array( array(
'novalue', 88 ) ),
- 'g' =>
'Q111$D8404CDA-25E4-4334-AF88-A3290BCD9C0F' )
- ),
- ),
- array(),
- array(),
+ 'm' => array( 'novalue', 56 ),
+ 'q' => array( ),
+ 'g' =>
'Q111$D8404CDA-25E4-4334-AF13-A390BCD9C556' )
+ ),
+ ),
+ array(),
+ array(),
+ array( 'claims' => array(
array(
- 'label' => array( 'en' => 'foo', 'pt'
=> 'ptfoo' ),
- 'description' => array( 'en' => 'foo',
'pl' => 'pldesc' ),
- 'aliases' => array( 'en' => array(
'foo', 'bar' ), 'de' => array( 'defoo', 'debar' ) ),
- 'links' => array( 'dewiki' => array(
'name' => 'foo', 'badges' => array() ) ),
- 'claims' => array(
- array(
- 'm' => array(
'novalue', 88 ),
- 'q' => array( array(
'novalue', 88 ) ) )
- ),
+ 'm' => array( 'novalue', 56 ),
+ 'q' => array( ) )
+ ),
+ ),
+ );
+ $testCases['claimWithQualifierMerge'] = array(
+ array( 'claims' => array(
+ array(
+ 'm' => array( 'novalue', 56 ),
+ 'q' => array( array( 'novalue', 56 )
),
+ 'g' =>
'Q111$D8404CDA-25E4-4334-AF13-A3290BCD9C0F' )
+ ),
+ ),
+ array(),
+ array(),
+ array( 'claims' => array(
+ array(
+ 'm' => array( 'novalue', 56 ),
+ 'q' => array( array( 'novalue', 56 )
) )
+ ),
+ ),
+ );
+ $testCases['itemMerge'] = array(
+ array(
+ 'label' => array( 'en' => 'foo', 'pt' =>
'ptfoo' ),
+ 'description' => array( 'en' => 'foo', 'pl' =>
'pldesc' ),
+ 'aliases' => array( 'en' => array( 'foo', 'bar'
), 'de' => array( 'defoo', 'debar' ) ),
+ 'links' => array( 'dewiki' => array( 'name' =>
'foo', 'badges' => array() ) ),
+ 'claims' => array(
+ array(
+ 'm' => array( 'novalue', 88 ),
+ 'q' => array( array(
'novalue', 88 ) ),
+ 'g' =>
'Q111$D8404CDA-25E4-4334-AF88-A3290BCD9C0F' )
+ ),
+ ),
+ array(),
+ array(),
+ array(
+ 'label' => array( 'en' => 'foo', 'pt' =>
'ptfoo' ),
+ 'description' => array( 'en' => 'foo', 'pl' =>
'pldesc' ),
+ 'aliases' => array( 'en' => array( 'foo', 'bar'
), 'de' => array( 'defoo', 'debar' ) ),
+ 'links' => array( 'dewiki' => array( 'name' =>
'foo', 'badges' => array() ) ),
+ 'claims' => array(
+ array(
+ 'm' => array( 'novalue', 88 ),
+ 'q' => array( array(
'novalue', 88 ) ) )
),
),
);
+ return $testCases;
}
}
\ No newline at end of file
--
To view, visit https://gerrit.wikimedia.org/r/94326
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I5a60e95d27f7d2729a28ae9b5dd49c64f3c0ec14
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Addshore <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits