Daniel Werner has submitted this change and it was merged.

Change subject: Claims now use wb.SnakList instead of wb.Snak[] for their 
qualifiers
......................................................................


Claims now use wb.SnakList instead of wb.Snak[] for their qualifiers

Adjusted tests and solved some overdue TODO there along the way.

Change-Id: I2e2688c23c05bcf3bf1d61cd4b8f02675485dd3e
---
M lib/resources/wikibase.datamodel/wikibase.Claim.js
M lib/tests/qunit/wikibase.datamodel/Wikibase.claim.tests.js
2 files changed, 25 insertions(+), 28 deletions(-)

Approvals:
  Daniel Werner: Verified; Looks good to me, approved



diff --git a/lib/resources/wikibase.datamodel/wikibase.Claim.js 
b/lib/resources/wikibase.datamodel/wikibase.Claim.js
index fd2a2ae..f0f5cdd 100644
--- a/lib/resources/wikibase.datamodel/wikibase.Claim.js
+++ b/lib/resources/wikibase.datamodel/wikibase.Claim.js
@@ -14,13 +14,13 @@
  * @see https://meta.wikimedia.org/wiki/Wikidata/Data_model#Statements
  *
  * @param {wb.Snak} mainSnak
- * @param {wb.Snak[]} [qualifiers]
+ * @param {wb.SnakList|null} [qualifiers]
  * @param {String|null} [guid] The Global Unique Identifier of this Claim. Can 
be omitted or null
  *        if this is a new Claim, not yet stored in the database and 
associated with some entity.
  */
 wb.Claim = function WbClaim( mainSnak, qualifiers, guid ) {
        this.setMainSnak( mainSnak );
-       this.setQualifiers( qualifiers || [] );
+       this.setQualifiers( qualifiers || new wb.SnakList() );
        this._guid = guid || null;
 };
 
@@ -74,9 +74,9 @@
        },
 
        /**
-        * Returns all qualifiers as an array of Snaks.
+        * Returns all qualifiers as a wb.SnakList object.
         *
-        * @return wb.Snak[]
+        * @return wb.SnakList
         */
        getQualifiers: function() {
                return this._qualifiers;
@@ -85,11 +85,11 @@
        /**
         * Overwrites the current set of qualifiers.
         *
-        * @param {wb.Snak[]} qualifiers
+        * @param {wb.SnakList} qualifiers
         */
        setQualifiers: function( qualifiers ) {
-               if( !$.isArray( qualifiers ) ) {
-                       throw new Error( 'Qualifiers have to be an array of 
snaks' );
+               if( !( qualifiers instanceof wb.SnakList ) ) {
+                       throw new Error( 'Qualifiers have to be a wb.SnakList 
object' );
                }
                this._qualifiers = qualifiers;
        }
@@ -103,7 +103,7 @@
  */
 wb.Claim.newFromJSON = function( json ) {
        var mainSnak = wb.Snak.newFromJSON( json.mainsnak ),
-               qualifiers = [],
+               qualifiers = new wb.SnakList(),
                references = [],
                rank,
                guid,
@@ -111,7 +111,7 @@
 
        if ( json.qualifiers !== undefined ) {
                $.each( json.qualifiers, function( i, qualifier ) {
-                       qualifiers.push( wb.Snak.newFromJSON( qualifier ) );
+                       qualifiers.addSnak( wb.Snak.newFromJSON( qualifier ) );
                } );
        }
 
diff --git a/lib/tests/qunit/wikibase.datamodel/Wikibase.claim.tests.js 
b/lib/tests/qunit/wikibase.datamodel/Wikibase.claim.tests.js
index 4eacccb..c390294 100644
--- a/lib/tests/qunit/wikibase.datamodel/Wikibase.claim.tests.js
+++ b/lib/tests/qunit/wikibase.datamodel/Wikibase.claim.tests.js
@@ -9,7 +9,7 @@
  * @author Jeroen De Dauw < [email protected] >
  */
 
-( function( wb, dv, $, QUnit, undefined ) {
+( function( wb, dv, $, QUnit ) {
        'use strict';
 
        QUnit.module( 'wikibase.datamodel.claim.js', QUnit.newMwEnvironment() );
@@ -18,15 +18,13 @@
                var argumentLists = [
                        {
                                mainSnak: new wb.PropertyNoValueSnak( 42 ),
-                               qualifiers: []
-                       },
-                       {
+                               qualifiers: new wb.SnakList()
+                       }, {
                                mainSnak: new wb.PropertySomeValueSnak( 9001 ),
-                               qualifiers: []
-                       },
-                       {
+                               qualifiers: new wb.SnakList()
+                       }, {
                                mainSnak: new wb.PropertyValueSnak( 23, new 
dv.StringValue( '~=[,,_,,]:3' ) ),
-                               qualifiers: []
+                               qualifiers: new wb.SnakList()
                        }
                ];
 
@@ -36,11 +34,9 @@
                                constructorArguments.qualifiers
                        );
 
-                       // TODO: replace with comparison function implemented 
in snak
-                       assert.strictEqual(
-                               claim.getMainSnak().getPropertyId(),
-                               constructorArguments.mainSnak.getPropertyId(),
-                               'Main snak property id is correct'
+                       assert.ok(
+                               claim.getMainSnak().equals( 
constructorArguments.mainSnak ),
+                               'Main snak is set correctly'
                        );
 
                        assert.strictEqual(
@@ -55,7 +51,10 @@
        } );
 
        QUnit.test( 'setMainSnak and getMainSnak', function( assert ) {
-               var claim = new wb.Claim( new wb.PropertyNoValueSnak( 42 ), [] 
),
+               var claim = new wb.Claim(
+                               new wb.PropertyNoValueSnak( 42 ),
+                               new wb.SnakList()
+                       ),
                        snaks = [
                                new wb.PropertyNoValueSnak( 9001 ),
                                new wb.PropertySomeValueSnak( 42 ),
@@ -65,11 +64,9 @@
                $.each( snaks, function( i, snak ) {
                        claim.setMainSnak( snak );
 
-                       // TODO: replace with comparison function implemented 
in snak
-                       assert.strictEqual(
-                               claim.getMainSnak().getPropertyId(),
-                               snak.getPropertyId(),
-                               'Main snak property id is correct'
+                       assert.ok(
+                               claim.getMainSnak().equals( snak ),
+                               'Main snak is set correctly'
                        );
 
                        assert.strictEqual(

-- 
To view, visit https://gerrit.wikimedia.org/r/52036
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I2e2688c23c05bcf3bf1d61cd4b8f02675485dd3e
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: mw1.21-wmf11
Gerrit-Owner: Tobias Gritschacher <[email protected]>
Gerrit-Reviewer: Daniel Werner <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to