public void CreateReturnsResultWithInvalidCalculationModel()
        {
            var controller = new CalculationsController(_mockLogger.Object, _mockRepository.Object, _mockCalculator.Object, _mockMapper.Object, _mockDbContext.Object);

            controller.ModelState.AddModelError("Expression", "Required");
            var newCalculation = new CalculationModel();

            var result = controller.Create(newCalculation, newCalculation.Expression).Result;

            Assert.IsType <UnprocessableEntityResult>(result);
        }
        public void CreateReturnsCreatedAtActionAndAddsCalculation()
        {
            var controller     = new CalculationsController(_mockLogger.Object, _mockRepository.Object, _mockCalculator.Object, _mockMapper.Object, _mockDbContext.Object);
            var newCalculation = new CalculationModel()
            {
                Type       = "Add",
                Expression = "88 + 11",
                CreateDate = DateTime.Now,
                Result     = 99
            };

            var result = controller.Create(newCalculation, newCalculation.Expression).Result;

            var createdAtActionResult = Assert.IsType <CreatedAtActionResult>(result);

            Assert.Null(createdAtActionResult.ControllerName);
            Assert.Equal("GetById", createdAtActionResult.ActionName);
            _mockRepository.Verify(r => r
                                   .CreateAsync(_mockMapper.Object.Map <Calculation>(newCalculation)));
        }