Пример #1
0
 /**
  * @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);
     }
 }
Пример #2
0
 /**
  * @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);
 }