public async Task ValidateQuestionAsync_ModifiedValidQuestion_ReturnsTrueNoErrors() { var database = GetDatabase().Build(); var question = database.Context .Questions .Include(q => q.QuestionCategory.Classroom) .Single(q => q.Name == "Question1"); database.Reload(); question.Name = "ModifiedQuestion"; var modelErrors = new MockErrorCollection(); var validator = new QuestionValidator(database.Context); var result = await validator.ValidateQuestionAsync ( question, modelErrors, "Class1" ); Assert.True(result); Assert.False(modelErrors.HasErrors); }
public async Task ValidateQuestionAsync_CategoryChangedForRandomQuestionChoice_Throws() { var database = GetDatabase().Build(); var question = database.Context .Questions .Include(q => q.QuestionCategory.Classroom) .Single(q => q.Name == "Choice1"); var newCategoryId = database.Context .QuestionCategories .Single(qc => qc.Name == "Category1") .Id; database.Reload(); question.QuestionCategoryId = newCategoryId; question.QuestionCategory = null; var modelErrors = new MockErrorCollection(); var validator = new QuestionValidator(database.Context); await Assert.ThrowsAsync <InvalidOperationException> ( async() => await validator.ValidateQuestionAsync ( question, modelErrors, "Class1" ) ); }
public async Task ValidateQuestionAsync_NewValidQuestion_ReturnsTrueNoErrors() { var database = GetDatabase().Build(); var question = new MultipleChoiceQuestion() { Name = "NewQuestion", QuestionCategoryId = database.Context .QuestionCategories .Single(qc => qc.Name == "Category1") .Id }; database.Reload(); var modelErrors = new MockErrorCollection(); var validator = new QuestionValidator(database.Context); var result = await validator.ValidateQuestionAsync ( question, modelErrors, "Class1" ); Assert.True(result); Assert.False(modelErrors.HasErrors); }