public QuizManagementServiceTest() { _entityValidator = A.Fake<EntityValidator>(); _quizRepository = A.Fake<IQuizRepository>(); _quizDtoMapper = A.Fake<IQuizDtoMapper>(); _questionDtoMapper = A.Fake<IQuestionDtoMapper>(); _assignedQuizDtoMapper = A.Fake<IAssignedQuizDtoMapper>(); _quizManagementService = new QuizManagementService(_quizRepository, _quizDtoMapper, _entityValidator, _questionDtoMapper, _assignedQuizDtoMapper); _validQuiz = new Entities.Quiz { Name = "Test", Description = "Description", Questions = new List<Question> { A.Fake<Question>(), A.Fake<Question>() } }; _validAssignment = new AssignedQuizModel { Quiz = new Entities.Quiz(), Group = new Group(), StartDate = DateTime.Now, EndDate = DateTime.Now.AddDays(1) }; }
public void AssignTestToGroupAsync_InvalidAssignment_ExceptionThrown() { var invalidAssignment = new AssignedQuizModel(); A.CallTo( () => _entityValidator.ValidateEntity<IAssignedQuizModel>(invalidAssignment)) .Returns( new EntityValidationResult(false, new[] { new ValidationResult("Test required", new[] {"Test"}), new ValidationResult("Group required", new[] {"Group"}), })); var aggregateException = Assert.Throws<AggregateException>(() => _quizManagementService.AssignQuizToGroupAsync(invalidAssignment).Wait()); var exception = (InvalidAssignedTestException) aggregateException.GetBaseException(); Assert.True(exception.ValidationResults.Any(x => x.MemberNames.First() == "Test")); Assert.True(exception.ValidationResults.Any(x => x.MemberNames.First() == "Group")); }