public void CalculateResult_WhenCorrectTestAttemptViewModel_ShouldReturnJsonViewModel()
        {
            var viewModel = new TestAttemptViewModel()
            {
                TestId             = 1,
                Title              = "title1",
                TestAttemptEntries = new List <TestAttemptEntryViewModel>
                {
                    new TestAttemptEntryViewModel()
                }
            };

            var returnedViewModel = new TestAttemptResultViewModel()
            {
                TestId = 1,
                Title  = "title1",
                Score  = 10,
                MaximalPossibleScore = 15
            };

            _mockService.Setup(x => x.CalculateResult(It.IsAny <TestAttemptViewModel>())).Returns(returnedViewModel);

            var result = _sut.CalculateResult(viewModel) as JsonResult;

            Assert.IsNotNull(result);
            Assert.AreEqual(result.GetValueFromJsonResult <string>("Title"), returnedViewModel.Title);
            Assert.AreEqual(result.GetValueFromJsonResult <int>("TestId"), returnedViewModel.TestId);
            Assert.AreEqual(result.GetValueFromJsonResult <int>("Score"), returnedViewModel.Score);
            Assert.AreEqual(result.GetValueFromJsonResult <int>("MaximalPossibleScore"), returnedViewModel.MaximalPossibleScore);
        }
        public void CalculateResult_WhenCorrectTestAttemptViewModel_ShouldReturnsJsonViewModel()
        {
            //Arrange
            var viewModel = _fixture.Create <TestAttemptViewModel>();

            var returnedViewModel = new TestAttemptResultViewModel()
            {
                TestId = 1,
                Title  = "title1",
                Score  = 10,
                MaximalPossibleScore = 15
            };

            _testResultCalculationServiceMock.Setup(x => x.CalculateResult(It.IsAny <TestAttemptViewModel>())).Returns(returnedViewModel);

            //Act
            var result = _controller.CalculateResult(viewModel) as JsonResult;

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(result.GetValueFromJsonResult <string>("Title"), returnedViewModel.Title);
            Assert.AreEqual(result.GetValueFromJsonResult <int>("TestId"), returnedViewModel.TestId);
            Assert.AreEqual(result.GetValueFromJsonResult <int>("Score"), returnedViewModel.Score);
            Assert.AreEqual(result.GetValueFromJsonResult <int>("MaximalPossibleScore"), returnedViewModel.MaximalPossibleScore);
        }