/** * Evaluates the constraint for parameter $other * * If $returnResult is set to false (the default), an exception is thrown * in case of a failure. null is returned otherwise. * * If $returnResult is true, the result of the evaluation is returned as * a boolean value instead: true in case of success, false in case of a * failure. * * @param mixed $other Value or object to evaluate. * @param string $description Additional information about the test * @param bool $returnResult Whether to return a result or throw an exception * @return mixed * @throws PHPUnit_Framework_ExpectationFailedException */ public function evaluate($other, $description = '', $returnResult = false) { $comparatorFactory = new SebastianBergmann\Comparator\Factory(); try { $comparator = $comparatorFactory->getComparatorFor($other, $this->value); $comparator->assertEquals($this->value, $other, $this->delta, $this->canonicalize, $this->ignoreCase); } catch (SebastianBergmann\Comparator\ComparisonFailure $f) { if ($returnResult) { return false; } throw new PHPUnit_Framework_ExpectationFailedException(trim($description . "\n" . $f->getMessage()), $f); } return true; }
private function getDiff($expected, $actual) { $factory = new \SebastianBergmann\Comparator\Factory(); try { $comparator = $factory->getComparatorFor($expected, $actual); $comparator->assertEquals($expected, $actual); } catch (\SebastianBergmann\Comparator\ComparisonFailure $failure) { $diff = $failure->getDiff(); return $diff; } return null; }