Denny Vrandecic has submitted this change and it was merged.

Change subject: Added attributeValue to InvalidAttributeException
......................................................................


Added attributeValue to InvalidAttributeException

Change-Id: I522941a30609aa6307142ac36857548a7bfa894a
---
M Tests/Phpunit/Deserializers/Exceptions/InvalidAttributeExceptionTest.php
M src/Ask/Deserializers/Exceptions/InvalidAttributeException.php
M src/Ask/Deserializers/Strategies/DescriptionDeserializationStrategy.php
M src/Ask/Deserializers/Strategies/SelectionRequestDeserializationStrategy.php
M src/Ask/Deserializers/Strategies/SortExpressionDeserializationStrategy.php
M src/Ask/Deserializers/Strategies/TypedDeserializationStrategy.php
M src/Ask/Deserializers/TypedObjectDeserializer.php
7 files changed, 26 insertions(+), 10 deletions(-)

Approvals:
  Denny Vrandecic: Looks good to me, approved
  jenkins-bot: Verified



diff --git 
a/Tests/Phpunit/Deserializers/Exceptions/InvalidAttributeExceptionTest.php 
b/Tests/Phpunit/Deserializers/Exceptions/InvalidAttributeExceptionTest.php
index 844c53d..a8110fb 100644
--- a/Tests/Phpunit/Deserializers/Exceptions/InvalidAttributeExceptionTest.php
+++ b/Tests/Phpunit/Deserializers/Exceptions/InvalidAttributeExceptionTest.php
@@ -20,26 +20,29 @@
 
        public function testConstructorWithOnlyRequiredArguments() {
                $attributeName = 'theGame';
+               $attributeValue = 'youJustLostIt';
 
-               $exception = new InvalidAttributeException( $attributeName );
+               $exception = new InvalidAttributeException( $attributeName, 
$attributeValue );
 
-               $this->assertRequiredFieldsAreSet( $exception, $attributeName );
+               $this->assertRequiredFieldsAreSet( $exception, $attributeName, 
$attributeValue );
        }
 
        public function testConstructorWithAllArguments() {
                $attributeName = 'theGame';
+               $attributeValue = 'youJustLostIt';
                $message = 'NyanData all the way across the sky!';
                $previous = new \Exception( 'Onoez!' );
 
-               $exception = new InvalidAttributeException( $attributeName, 
$message, $previous );
+               $exception = new InvalidAttributeException( $attributeName, 
$attributeValue, $message, $previous );
 
-               $this->assertRequiredFieldsAreSet( $exception, $attributeName );
+               $this->assertRequiredFieldsAreSet( $exception, $attributeName, 
$attributeValue );
                $this->assertEquals( $message, $exception->getMessage() );
                $this->assertEquals( $previous, $exception->getPrevious() );
        }
 
-       protected function assertRequiredFieldsAreSet( 
InvalidAttributeException $exception, $attributeName ) {
+       protected function assertRequiredFieldsAreSet( 
InvalidAttributeException $exception, $attributeName, $attributeValue ) {
                $this->assertEquals( $attributeName, 
$exception->getAttributeName() );
+               $this->assertEquals( $attributeValue, 
$exception->getAttributeValue() );
        }
 
 }
diff --git a/src/Ask/Deserializers/Exceptions/InvalidAttributeException.php 
b/src/Ask/Deserializers/Exceptions/InvalidAttributeException.php
index de70237..834d77a 100644
--- a/src/Ask/Deserializers/Exceptions/InvalidAttributeException.php
+++ b/src/Ask/Deserializers/Exceptions/InvalidAttributeException.php
@@ -14,14 +14,17 @@
 class InvalidAttributeException extends DeserializationException {
 
        protected $attributeName;
+       protected $attributeValue;
 
        /**
         * @param string $attributeName
+        * @param mixed $attributeValue
         * @param string $message
         * @param \Exception $previous
         */
-       public function __construct( $attributeName, $message = '', \Exception 
$previous = null ) {
+       public function __construct( $attributeName, $attributeValue, $message 
= '', \Exception $previous = null ) {
                $this->attributeName = $attributeName;
+               $this->attributeValue = $attributeValue;
 
                parent::__construct( $message, $previous );
        }
@@ -33,4 +36,11 @@
                return $this->attributeName;
        }
 
+       /**
+        * @return string
+        */
+       public function getAttributeValue() {
+               return $this->attributeValue;
+       }
+
 }
diff --git 
a/src/Ask/Deserializers/Strategies/DescriptionDeserializationStrategy.php 
b/src/Ask/Deserializers/Strategies/DescriptionDeserializationStrategy.php
index f020e99..67da399 100644
--- a/src/Ask/Deserializers/Strategies/DescriptionDeserializationStrategy.php
+++ b/src/Ask/Deserializers/Strategies/DescriptionDeserializationStrategy.php
@@ -69,6 +69,7 @@
 
                throw new InvalidAttributeException(
                        'descriptionType',
+                       $descriptionType,
                        'The provided descriptionType is not supported by this 
deserializer'
                );
        }
diff --git 
a/src/Ask/Deserializers/Strategies/SelectionRequestDeserializationStrategy.php 
b/src/Ask/Deserializers/Strategies/SelectionRequestDeserializationStrategy.php
index 6949b4f..91a2110 100644
--- 
a/src/Ask/Deserializers/Strategies/SelectionRequestDeserializationStrategy.php
+++ 
b/src/Ask/Deserializers/Strategies/SelectionRequestDeserializationStrategy.php
@@ -48,7 +48,7 @@
                                break;
                }
 
-               throw new InvalidAttributeException( 'selectionRequestType' );
+               throw new InvalidAttributeException( 'selectionRequestType', 
$sortExpressionType );
        }
 
        protected function newPropertySelectionRequest( array $value ) {
diff --git 
a/src/Ask/Deserializers/Strategies/SortExpressionDeserializationStrategy.php 
b/src/Ask/Deserializers/Strategies/SortExpressionDeserializationStrategy.php
index 20a2913..3497f07 100644
--- a/src/Ask/Deserializers/Strategies/SortExpressionDeserializationStrategy.php
+++ b/src/Ask/Deserializers/Strategies/SortExpressionDeserializationStrategy.php
@@ -39,7 +39,7 @@
         */
        public function getDeserializedValue( $sortExpressionType, array 
$valueSerialization ) {
                if ( $sortExpressionType !== 'propertyValue' ) {
-                       throw new InvalidAttributeException( 
'sortExpressionType' );
+                       throw new InvalidAttributeException( 
'sortExpressionType', $sortExpressionType );
                }
 
                $this->requireAttribute( $valueSerialization, 'direction' );
diff --git a/src/Ask/Deserializers/Strategies/TypedDeserializationStrategy.php 
b/src/Ask/Deserializers/Strategies/TypedDeserializationStrategy.php
index c25a894..d2c2547 100644
--- a/src/Ask/Deserializers/Strategies/TypedDeserializationStrategy.php
+++ b/src/Ask/Deserializers/Strategies/TypedDeserializationStrategy.php
@@ -41,7 +41,8 @@
        protected function assertAttributeIsArray( array $array, $attributeName 
) {
                if ( !is_array( $array[$attributeName] ) ) {
                        throw new InvalidAttributeException(
-                               $attributeName
+                               $attributeName,
+                               $array[$attributeName]
                        );
                }
        }
diff --git a/src/Ask/Deserializers/TypedObjectDeserializer.php 
b/src/Ask/Deserializers/TypedObjectDeserializer.php
index 5f0ca66..4bae5a4 100644
--- a/src/Ask/Deserializers/TypedObjectDeserializer.php
+++ b/src/Ask/Deserializers/TypedObjectDeserializer.php
@@ -93,7 +93,8 @@
        protected function assertAttributeIsArray( array $array, $attributeName 
) {
                if ( !is_array( $array[$attributeName] ) ) {
                        throw new InvalidAttributeException(
-                               $attributeName
+                               $attributeName,
+                               $array[$attributeName]
                        );
                }
        }

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

Gerrit-MessageType: merged
Gerrit-Change-Id: I522941a30609aa6307142ac36857548a7bfa894a
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Ask
Gerrit-Branch: master
Gerrit-Owner: Jeroen De Dauw <[email protected]>
Gerrit-Reviewer: Denny Vrandecic <[email protected]>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to