public void UpdatePregunta_WhenCalled_ReturnsOkResult()
        {
            //Arrange
            _controller = new PreguntasController(_logger, _asignacionInfoRepository);

            var preguntaCambiar = new everisapi.API.Models.PreguntaUpdateDto {
                Pregunta = "Pregunta 1"
            };

            var preguntaEncontrada = new everisapi.API.Entities.PreguntaEntity
            {
                Id = 1,
                AsignacionEntity      = null,
                AsignacionId          = 1,
                Correcta              = "Si",
                EsHabilitante         = true,
                Nivel                 = 1,
                Peso                  = 0,
                PreguntaHabilitante   = null,
                PreguntaHabilitanteId = null
            };

            mockRepository.Setup(r => r.AsignacionExiste(It.IsAny <int>())).Returns(true);
            mockRepository.Setup(r => r.GetPreguntaDeAsignacion(It.IsAny <int>(), It.IsAny <int>())).Returns(preguntaEncontrada);
            mockRepository.Setup(r => r.SaveChanges()).Returns(true);

            //Act
            var okResult = _controller.UpdatePregunta(1, 1, preguntaCambiar);

            //Assert
            Assert.IsType <OkObjectResult>(okResult);
        }
        public void GetPreguntaAsignacion_WhenPreguntaIsNull_ReturnsNotFoundResult()
        {
            //Arrange
            _controller = new PreguntasController(_logger, _asignacionInfoRepository);

            everisapi.API.Entities.PreguntaEntity preguntaEntity = null;

            mockRepository.Setup(r => r.AsignacionExiste(It.IsAny <int>())).Returns(true);
            mockRepository.Setup(r => r.GetPreguntaDeAsignacion(It.IsAny <int>(), It.IsAny <int>())).Returns(preguntaEntity);

            //Act
            var okResult = _controller.GetPreguntaAsignacion(1, 1);

            //Assert
            Assert.IsType <NotFoundResult>(okResult);
        }
        public void DeletePregunta_WhenCalledNotExitPregunta_ReturnsOkResult()
        {
            //Arrange
            _controller = new PreguntasController(_logger, _asignacionInfoRepository);

            everisapi.API.Entities.PreguntaEntity preguntaEncontrada = null;

            mockRepository.Setup(r => r.AsignacionExiste(It.IsAny <int>())).Returns(true);
            mockRepository.Setup(r => r.GetPreguntaDeAsignacion(It.IsAny <int>(), It.IsAny <int>())).Returns(preguntaEncontrada);
            mockRepository.Setup(r => r.SaveChanges()).Returns(true);

            //Act
            var okResult = _controller.DeletePregunta(1, 1);

            //Assert
            Assert.IsType <NotFoundResult>(okResult);
        }
        public void DeletePregunta_WhenCalledThrowException_ReturnsStatusCodeResult()
        {
            //Arrange
            _controller = new PreguntasController(_logger, _asignacionInfoRepository);

            var preguntaEncontrada = new everisapi.API.Entities.PreguntaEntity {
                Id = 1
            };

            mockRepository.Setup(r => r.AsignacionExiste(It.IsAny <int>())).Returns(true);
            mockRepository.Setup(r => r.GetPreguntaDeAsignacion(It.IsAny <int>(), It.IsAny <int>())).Returns(preguntaEncontrada);
            mockRepository.Setup(r => r.SaveChanges()).Throws(new Exception());

            //Act
            var okResult = _controller.DeletePregunta(1, 1);

            //Assert
            Assert.IsType <ObjectResult>(okResult);
        }
        public void GetPreguntaAsignacion_WhenCalled_ReturnOkResult()
        {
            //Arrange
            _controller = new PreguntasController(_logger, _asignacionInfoRepository);

            var preguntaEntity = new everisapi.API.Entities.PreguntaEntity {
                Id           = 1,
                AsignacionId = 1
            };

            mockRepository.Setup(r => r.AsignacionExiste(It.IsAny <int>())).Returns(true);
            mockRepository.Setup(r => r.GetPreguntaDeAsignacion(It.IsAny <int>(), It.IsAny <int>())).Returns(preguntaEntity);

            //Act
            var okResult = _controller.GetPreguntaAsignacion(1, 1);

            //Assert
            Assert.IsType <OkObjectResult>(okResult);
        }
        public void UpdatePregunta_WhenCalledWithNull_ReturnsBadRequestResult()
        {
            //Arrange
            _controller = new PreguntasController(_logger, _asignacionInfoRepository);

            everisapi.API.Models.PreguntaUpdateDto preguntaCambiar = null;

            var preguntaEncontrada = new everisapi.API.Entities.PreguntaEntity {
                Id = 1
            };

            mockRepository.Setup(r => r.AsignacionExiste(It.IsAny <int>())).Returns(true);
            mockRepository.Setup(r => r.GetPreguntaDeAsignacion(It.IsAny <int>(), It.IsAny <int>())).Returns(preguntaEncontrada);
            mockRepository.Setup(r => r.SaveChanges()).Returns(true);

            //Act
            var okResult = _controller.UpdatePregunta(1, 1, preguntaCambiar);

            //Assert
            Assert.IsType <BadRequestResult>(okResult);
        }
        public void UpdatePregunta_WhenCalledInvalidModel_ReturnsBadRequestResult()
        {
            //Arrange
            _controller = new PreguntasController(_logger, _asignacionInfoRepository);
            _controller.ModelState.AddModelError("error", "some error");

            var preguntaCambiar = new everisapi.API.Models.PreguntaUpdateDto {
                Pregunta = "Pregunta 1"
            };

            everisapi.API.Entities.PreguntaEntity preguntaEncontrada = new everisapi.API.Entities.PreguntaEntity {
                Id = 1
            };

            mockRepository.Setup(r => r.AsignacionExiste(It.IsAny <int>())).Returns(true);
            mockRepository.Setup(r => r.GetPreguntaDeAsignacion(It.IsAny <int>(), It.IsAny <int>())).Returns(preguntaEncontrada);
            mockRepository.Setup(r => r.SaveChanges()).Returns(true);

            //Act
            var okResult = _controller.UpdatePregunta(1, 1, preguntaCambiar);

            //Assert
            Assert.IsType <BadRequestObjectResult>(okResult);
        }