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

Reply via email to