public void CalculateResult_CorrectViewModelWithMultipleChoicesDifferentAnswers_ReturnsTestAttemptResultViewModel() { ITestResultCalculationService service = new TestResultCalculationService(); var viewModel = new TestAttemptViewModel { TestId = 1, Title = "title1", UserId = Guid.NewGuid().ToString(), TestAttemptEntries = new List <TestAttemptEntryViewModel> { new TestAttemptEntryViewModel { Question = new QuestionViewModel { Id = 1 }, Answers = new List <TestAttemptAnswerViewModel> { new TestAttemptAnswerViewModel { Checked = false, Value = 1 }, new TestAttemptAnswerViewModel { Checked = true, Value = 0 }, new TestAttemptAnswerViewModel { Checked = true, Value = 2 } } }, new TestAttemptEntryViewModel { Question = new QuestionViewModel { Id = 1 }, Answers = new List <TestAttemptAnswerViewModel> { new TestAttemptAnswerViewModel { Checked = true, Value = 1 }, new TestAttemptAnswerViewModel { Checked = false, Value = 0 }, new TestAttemptAnswerViewModel { Checked = true, Value = 1 } } } } }; var result = service.CalculateResult(viewModel); Assert.IsNotNull(result); Assert.AreEqual(result.Title, viewModel.Title); Assert.AreEqual(result.TestId, viewModel.TestId); Assert.AreEqual(result.Score, 2); Assert.AreEqual(result.MaximalPossibleScore, 5); }
public void CalculateResult_NullViewModel_ThrowsArgumentException() { ITestResultCalculationService service = new TestResultCalculationService(); Assert.Throws <ArgumentException>(() => service.CalculateResult(null)); }