protected function matches($actual) { if ($this->analyzer->isArray($actual) === false) { throw new \PHPUnit_Framework_Exception('Actual value of ' . __CLASS__ . ' must be an array'); } $patched = array_replace_recursive($actual, $this->expected); $asserter = new asserters\phpArray(null, $this->analyzer); $asserter->setWith($actual); if ($this->strict) { $asserter->isIdenticalTo($patched); } else { $asserter->isEqualTo($patched); } }
public function testIsEqualTo() { $this->if($asserter = new sut($generator = new asserter\generator()))->then->exception(function () use($asserter) { $asserter->isEqualTo(array()); })->isInstanceOf('mageekguy\\atoum\\exceptions\\logic')->hasMessage('Array is undefined')->if($asserter->setWith(array()))->then->object($asserter->isEqualTo(array()))->isIdenticalTo($asserter)->if($asserter->setWith($array = range(1, 5)))->then->object($asserter->isEqualTo($array))->isIdenticalTo($asserter)->if($diff = new diffs\variable())->then->exception(function () use(&$line, $asserter, &$notEqualValue) { $line = __LINE__; $asserter->isEqualTo($notEqualValue = uniqid()); })->isInstanceOf('mageekguy\\atoum\\asserter\\exception')->hasMessage(sprintf($generator->getLocale()->_('%s is not equal to %s'), $asserter, $asserter->getTypeOf($notEqualValue)) . PHP_EOL . $diff->setExpected($notEqualValue)->setActual($asserter->getValue()))->if($asserter->integer)->then->object($asserter->isEqualTo($array))->isIdenticalTo($asserter)->exception(function () use(&$line, $asserter, &$notEqualValue) { $line = __LINE__; $asserter->isEqualTo($notEqualValue = uniqid()); })->isInstanceOf('mageekguy\\atoum\\asserter\\exception')->hasMessage(sprintf($generator->getLocale()->_('%s is not equal to %s'), $asserter, $asserter->getTypeOf($notEqualValue)) . PHP_EOL . $diff->setExpected($notEqualValue)->setActual($asserter->getValue()))->if($asserter->integer[2])->then->object($asserter->isEqualTo(3))->isIdenticalTo($asserter)->object($asserter->isNotEqualTo(2))->isIdenticalTo($asserter)->object($asserter->isEqualTo(3)->isNotEqualTo(5))->isIdenticalTo($asserter)->if($diff = new diffs\variable())->then->exception(function () use($asserter, &$expectedValue) { $asserter->isEqualTo($expectedValue = rand(4, PHP_INT_MAX)); })->isInstanceOf('mageekguy\\atoum\\asserter\\exception')->hasMessage(sprintf($generator->getLocale()->_('%s is not equal to %s'), $asserter->getTypeOf($asserter->getInnerValue()), $asserter->getTypeOf($expectedValue)) . PHP_EOL . $diff->setExpected($expectedValue)->setActual(3)); }