![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /home/fdshops/public_html/vendor/mockery/mockery/library/Mockery/Matcher/ |
<?php /** * Mockery (https://docs.mockery.io/) * * @copyright https://github.com/mockery/mockery/blob/HEAD/COPYRIGHT.md * @license https://github.com/mockery/mockery/blob/HEAD/LICENSE BSD 3-Clause License * @link https://github.com/mockery/mockery for the canonical source repository */ namespace Mockery\Matcher; class Subset extends MatcherAbstract { private $expected; private $strict = true; /** * @param array $expected Expected subset of data * @param bool $strict Whether to run a strict or loose comparison */ public function __construct(array $expected, $strict = true) { $this->expected = $expected; $this->strict = $strict; } /** * @param array $expected Expected subset of data * * @return Subset */ public static function strict(array $expected) { return new static($expected, true); } /** * @param array $expected Expected subset of data * * @return Subset */ public static function loose(array $expected) { return new static($expected, false); } /** * Check if the actual value matches the expected. * * @param mixed $actual * @return bool */ public function match(&$actual) { if (!is_array($actual)) { return false; } if ($this->strict) { return $actual === array_replace_recursive($actual, $this->expected); } return $actual == array_replace_recursive($actual, $this->expected); } /** * Return a string representation of this Matcher * * @return string */ public function __toString() { return '<Subset' . $this->formatArray($this->expected) . ">"; } /** * Recursively format an array into the string representation for this matcher * * @param array $array * @return string */ protected function formatArray(array $array) { $elements = []; foreach ($array as $k => $v) { $elements[] = $k . '=' . (is_array($v) ? $this->formatArray($v) : (string) $v); } return "[" . implode(", ", $elements) . "]"; } }