validateQuestions function

void validateQuestions(
  1. Map<String, Question> questions
)

Reject empty question sets and invalid score criteria.

Implementation

void validateQuestions(Map<String, Question> questions) {
  if (questions.isEmpty) {
    throw TypeSafeException('At least one question is required.');
  }
  questions.forEach((name, question) {
    if (question is! ScoreQuestion) return;
    if (question.scoreCriteria.length < 2) {
      throw TypeSafeException(
        'Score question "$name" has ${question.scoreCriteria.length} criteria; '
        'at least two scores are required.',
      );
    }
  });
}