/** * @param ExerciseInterface $exercise * @return ExerciseInterface */ private function validateExercise(ExerciseInterface $exercise) { $type = $exercise->getType(); $requiredInterface = $type->getExerciseInterface(); if (!$exercise instanceof $requiredInterface) { throw InvalidArgumentException::missingImplements($exercise, $requiredInterface); } return $exercise; }
public function testExceptionFromMissingImplements() { $e = InvalidArgumentException::missingImplements(new \stdClass(), Countable::class); self::assertEquals('"stdClass" is required to implement "Countable", but it does not', $e->getMessage()); }