Jeroen De Dauw has uploaded a new change for review.
https://gerrit.wikimedia.org/r/72718
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(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Ask
refs/changes/18/72718/1
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: newchange
Gerrit-Change-Id: I522941a30609aa6307142ac36857548a7bfa894a
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Ask
Gerrit-Branch: master
Gerrit-Owner: Jeroen De Dauw <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits