예제 #1
0
        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);
        }
예제 #2
0
        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"
                )
            );
        }
예제 #3
0
        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);
        }