/** * @param string $requiredCheck * @param string $position * @throws InvalidArgumentException */ public function requireCheck($requiredCheck, $position) { if (!$this->checkRepository->has($requiredCheck)) { throw new InvalidArgumentException(sprintf('Check: "%s" does not exist', $requiredCheck)); } switch ($position) { case static::CHECK_BEFORE: $this->checksToRunBefore[] = $this->checkRepository->getByClass($requiredCheck); break; case static::CHECK_AFTER: $this->checksToRunAfter[] = $this->checkRepository->getByClass($requiredCheck); break; default: throw InvalidArgumentException::notValidParameter('position', [static::CHECK_BEFORE, static::CHECK_AFTER], $position); } }
/** * @param string|CommandArgument $argument * @return $this */ public function addArgument($argument) { if (!is_string($argument) && !$argument instanceof CommandArgument) { throw InvalidArgumentException::notValidParameter('argument', ['string', CommandArgument::class], $argument); } if (is_string($argument)) { $argument = new CommandArgument($argument); } if (count($this->args) === 0) { $this->args[] = $argument; return $this; } $previousArgument = end($this->args); if ($previousArgument->isOptional() && $argument->isRequired()) { throw new InvalidArgumentException(sprintf('A required argument cannot follow an optional argument')); } $this->args[] = $argument; return $this; }
public function testExceptionFromNotValidParameterConstructor() { $e = InvalidArgumentException::notValidParameter('number', [1, 2], 3); $this->assertEquals('Parameter: "number" can only be one of: "1", "2" Received: "3"', $e->getMessage()); }
/** * Queue a specific check to be run when the exercise is verified. When the exercise is verified * the check specified as the first argument will also be executed. Throws an `InvalidArgumentException` * if the check does not exist in the `CheckRepository`. * * @param string $requiredCheck The name of the required check. * @throws InvalidArgumentException If the check does not exist. */ public function requireCheck($requiredCheck) { if (!$this->checkRepository->has($requiredCheck)) { throw new InvalidArgumentException(sprintf('Check: "%s" does not exist', $requiredCheck)); } $check = $this->checkRepository->getByClass($requiredCheck); if ($check instanceof SimpleCheckInterface) { switch ($check->getPosition()) { case SimpleCheckInterface::CHECK_BEFORE: $this->checksToRunBefore[] = $check; break; case SimpleCheckInterface::CHECK_AFTER: $this->checksToRunAfter[] = $check; break; default: throw InvalidArgumentException::notValidParameter('position', [SimpleCheckInterface::CHECK_BEFORE, SimpleCheckInterface::CHECK_AFTER], $check->getPosition()); } return; } if (!$check instanceof ListenableCheckInterface) { throw new InvalidArgumentException(sprintf('Check: "%s" is not a listenable check', $requiredCheck)); } $check->attach($this->eventDispatcher); }