class PHPUnit_Framework_Constraint_ArraySubset in Zircon Profile 8
Same name and namespace in other branches
- 8.0 vendor/phpunit/phpunit/src/Framework/Constraint/ArraySubset.php \PHPUnit_Framework_Constraint_ArraySubset
Constraint that asserts that the array it is evaluated for has a specified subset.
Uses array_replace_recursive() to check if a key value subset is part of the subject array.
@since Class available since Release 4.4.0
Hierarchy
- class \PHPUnit_Framework_Constraint implements \Countable, PHPUnit_Framework_SelfDescribing
Expanded class hierarchy of PHPUnit_Framework_Constraint_ArraySubset
File
- vendor/
phpunit/ phpunit/ src/ Framework/ Constraint/ ArraySubset.php, line 19
View source
class PHPUnit_Framework_Constraint_ArraySubset extends PHPUnit_Framework_Constraint {
/**
* @var array|ArrayAccess
*/
protected $subset;
/**
* @var bool
*/
protected $strict;
/**
* @param array|ArrayAccess $subset
* @param bool $strict Check for object identity
*/
public function __construct($subset, $strict = false) {
parent::__construct();
$this->strict = $strict;
$this->subset = $subset;
}
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param array|ArrayAccess $other Array or ArrayAccess object to evaluate.
* @return bool
*/
protected function matches($other) {
$patched = array_replace_recursive($other, $this->subset);
if ($this->strict) {
return $other === $patched;
}
else {
return $other == $patched;
}
}
/**
* Returns a string representation of the constraint.
*
* @return string
*/
public function toString() {
return 'has the subset ' . $this->exporter
->export($this->subset);
}
/**
* Returns the description of the failure
*
* The beginning of failure messages is "Failed asserting that" in most
* cases. This method should return the second part of that sentence.
*
* @param mixed $other Evaluated value or object.
* @return string
*/
protected function failureDescription($other) {
return 'an array ' . $this
->toString();
}
}