Пример #1
0
        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);
        }
Пример #2
0
        public void CalculateResult_NullViewModel_ThrowsArgumentException()
        {
            ITestResultCalculationService service = new TestResultCalculationService();

            Assert.Throws <ArgumentException>(() => service.CalculateResult(null));
        }