芝麻web文件管理V1.00
编辑当前文件:/home2/sdektunc/airport-back/vendor/phpunit/phpunit/src/Framework/Constraint/LogicalXor.php
* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace PHPUnit\Framework\Constraint; use function array_values; use function count; use PHPUnit\Framework\ExpectationFailedException; use SebastianBergmann\RecursionContext\InvalidArgumentException; /** * Logical XOR. */ final class LogicalXor extends Constraint { /** * @var Constraint[] */ private $constraints = []; public static function fromConstraints(Constraint ...$constraints): self { $constraint = new self; $constraint->constraints = array_values($constraints); return $constraint; } /** * @param Constraint[] $constraints */ public function setConstraints(array $constraints): void { $this->constraints = []; foreach ($constraints as $constraint) { if (!($constraint instanceof Constraint)) { $constraint = new IsEqual( $constraint ); } $this->constraints[] = $constraint; } } /** * 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. * * @throws ExpectationFailedException * @throws InvalidArgumentException */ public function evaluate($other, string $description = '', bool $returnResult = false) { $success = true; $lastResult = null; foreach ($this->constraints as $constraint) { $result = $constraint->evaluate($other, $description, true); if ($result === $lastResult) { $success = false; break; } $lastResult = $result; } if ($returnResult) { return $success; } if (!$success) { $this->fail($other, $description); } } /** * Returns a string representation of the constraint. */ public function toString(): string { $text = ''; foreach ($this->constraints as $key => $constraint) { if ($key > 0) { $text .= ' xor '; } $text .= $constraint->toString(); } return $text; } /** * Counts the number of constraint elements. */ public function count(): int { $count = 0; foreach ($this->constraints as $constraint) { $count += count($constraint); } return $count; } }