public void DeleteSection_WhenCalled_ReturnOkResult()
        {
            //Arrange
            _controller = new SectionController(_logger, _sectionInfoRepository);

            var section = new everisapi.API.Models.SectionWithoutAreaDto
            {
                Id     = 1,
                Nombre = "Asignacion_1"
            };

            var returnsSection = new everisapi.API.Entities.SectionEntity
            {
                Id = 1
            };

            mockRepository.Setup(r => r.GetSection(It.IsAny <int>(), It.IsAny <bool>())).Returns(returnsSection);
            mockRepository.Setup(r => r.DeleteSection(It.IsAny <everisapi.API.Entities.SectionEntity>())).Returns(true);

            //Act
            var okResult = _controller.DeleteSection(section);

            //Assert
            Assert.IsType <OkObjectResult>(okResult);
        }
        public void AddNotas_WhenCalledWithWithInValidModel_ReturnsBadRequestObjectResult()
        {
            //Arrange
            _controller = new SectionController(_logger, _sectionInfoRepository);
            _controller.ModelState.AddModelError("error", "some error");

            var section = new everisapi.API.Models.SectionWithNotasDto
            {
                EvaluacionId = 1,
                SectionId    = 1,
                Notas        = "Notas_1"
            };

            var returnsSection = new everisapi.API.Entities.SectionEntity
            {
                Id = 1
            };

            mockRepository.Setup(r => r.GetSection(It.IsAny <int>(), It.IsAny <bool>())).Returns(returnsSection);
            mockRepository.Setup(r => r.AddNotasSection(It.IsAny <everisapi.API.Models.SectionWithNotasDto>())).Returns(true);

            //Act
            var okResult = _controller.AddNotas(section);

            //Assert
            Assert.IsType <BadRequestObjectResult>(okResult);
        }
        public void AddNotas_WhenCalledThrowException_ReturnsStatusCodeResult()
        {
            //Arrange
            _controller = new SectionController(_logger, _sectionInfoRepository);

            var section = new everisapi.API.Models.SectionWithNotasDto
            {
                EvaluacionId = 1,
                SectionId    = 1,
                Notas        = "Notas_1"
            };

            var returnsSection = new everisapi.API.Entities.SectionEntity
            {
                Id = 1
            };

            mockRepository.Setup(r => r.GetSection(It.IsAny <int>(), It.IsAny <bool>())).Returns(returnsSection);
            mockRepository.Setup(r => r.AddNotasSection(It.IsAny <everisapi.API.Models.SectionWithNotasDto>())).Throws(new Exception());

            //Act
            var okResult = _controller.AddNotas(section);

            //Assert
            Assert.IsType <ObjectResult>(okResult);
        }
        public void AddAsignacion_WhenCalledWithReturnhNotNull__ReturnsBadRequestResult()
        {
            //Arrange
            _controller = new SectionController(_logger, _sectionInfoRepository);

            var section = new everisapi.API.Models.SectionWithoutAreaDto
            {
                Id     = 1,
                Nombre = "Asignacion_1"
            };

            var returnsSection = new everisapi.API.Entities.SectionEntity
            {
                Id = 1
            };

            mockRepository.Setup(r => r.GetSection(1, false)).Returns(returnsSection);
            mockRepository.Setup(r => r.AddSection(It.IsAny <everisapi.API.Entities.SectionEntity>())).Returns(true);

            //Act
            var okResult = _controller.AddAsignacion(section);

            //Assert
            Assert.IsType <BadRequestResult>(okResult);
        }
        public void GetAsignacionesFromSection_WhenCalledThrowException_ReturnsStatusCodeResult()
        {
            //Arrange
            _controller = new SectionController(_logger, _sectionInfoRepository);

            var section = new everisapi.API.Entities.SectionEntity
            {
                Id = 1
            };

            var asignaciones = new List <everisapi.API.Entities.AsignacionEntity> {
                new everisapi.API.Entities.AsignacionEntity {
                    Id = 1
                }
            };

            mockRepository.Setup(r => r.GetSection(It.IsAny <int>(), It.IsAny <bool>())).Returns(section);
            mockRepository.Setup(r => r.GetAsignacionesFromSection(It.IsAny <everisapi.API.Entities.SectionEntity>(), It.IsAny <int>())).Throws(new Exception());

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

            //Assert
            Assert.IsType <ObjectResult>(okResult);
        }
        public void GetAsignacionesFromSection_WhenCalled_ReturnOkResult()
        {
            //Arrange
            _controller = new SectionController(_logger, _sectionInfoRepository);

            var section = new everisapi.API.Entities.SectionEntity
            {
                Id = 1
            };

            var asignaciones = new List <everisapi.API.Models.AsignacionSinPreguntasDto> {
                new everisapi.API.Models.AsignacionSinPreguntasDto {
                    Id = 1
                }
            };

            mockRepository.Setup(r => r.GetSection(It.IsAny <int>(), It.IsAny <bool>())).Returns(section);
            mockRepository.Setup(r => r.GetAsignacionesFromSection(It.IsAny <everisapi.API.Entities.SectionEntity>(), It.IsAny <int>())).Returns(asignaciones);

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

            //Assert
            Assert.IsType <OkObjectResult>(okResult);
        }
        public void GetSection_WhenCalledNull_ReturnNotFoundResult()
        {
            //Arrange
            _controller = new SectionController(_logger, _sectionInfoRepository);

            everisapi.API.Entities.SectionEntity section = null;

            mockRepository.Setup(r => r.GetSection(It.IsAny <int>(), It.IsAny <bool>())).Returns(section);

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

            //Assert
            Assert.IsType <NotFoundResult>(okResult);
        }
        public void GetNumRespuestas_WhenCalled_ReturnOkResult()
        {
            //Arrange
            _controller = new SectionController(_logger, _sectionInfoRepository);

            var section = new everisapi.API.Entities.SectionEntity
            {
                Id = 1
            };

            mockRepository.Setup(r => r.GetSection(It.IsAny <int>(), It.IsAny <bool>())).Returns(section);
            mockRepository.Setup(r => r.GetRespuestasCorrectasFromSection(It.IsAny <int>(), It.IsAny <int>())).Returns(It.IsAny <int>());

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

            //Assert
            Assert.IsType <OkObjectResult>(okResult);
        }
        public void AddNotas_WhenCalledWithNull__ReturnsBadRequestResult()
        {
            //Arrange
            _controller = new SectionController(_logger, _sectionInfoRepository);

            everisapi.API.Models.SectionWithNotasDto section = null;
            var returnsSection = new everisapi.API.Entities.SectionEntity
            {
                Id = 1
            };

            mockRepository.Setup(r => r.GetSection(It.IsAny <int>(), It.IsAny <bool>())).Returns(returnsSection);
            mockRepository.Setup(r => r.AddNotasSection(It.IsAny <everisapi.API.Models.SectionWithNotasDto>())).Returns(true);

            //Act
            var okResult = _controller.AddNotas(section);

            //Assert
            Assert.IsType <BadRequestResult>(okResult);
        }
        public void UpdateSection_WhenCalledWithNull__ReturnsBadRequestResult()
        {
            //Arrange
            _controller = new SectionController(_logger, _sectionInfoRepository);

            everisapi.API.Models.SectionWithoutAreaDto section = null;
            var returnsSection = new everisapi.API.Entities.SectionEntity
            {
                Id = 1
            };

            mockRepository.Setup(r => r.GetSection(1, false)).Returns(returnsSection);
            mockRepository.Setup(r => r.AlterSection(It.IsAny <everisapi.API.Entities.SectionEntity>())).Returns(true);

            //Act
            var okResult = _controller.UpdateSection(section);

            //Assert
            Assert.IsType <BadRequestResult>(okResult);
        }
        public void GetSection_WhenCalledNoIncluirAsignaciones_ReturnOkResult()
        {
            //Arrange
            _controller = new SectionController(_logger, _sectionInfoRepository);

            var section = new everisapi.API.Entities.SectionEntity
            {
                Id = 1
            };

            mockRepository.Setup(r => r.GetSection(It.IsAny <int>(), It.IsAny <bool>())).Returns(section);

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

            //Assert
            var okObjectResult = Assert.IsType <OkObjectResult>(okResult);

            Assert.IsType <everisapi.API.Models.SectionWithoutAreaDto>(okObjectResult.Value);
        }
        public void AddAsignacion_WhenCalledWithWithInValidModel_ReturnsBadRequestObjectResult()
        {
            //Arrange
            _controller = new SectionController(_logger, _sectionInfoRepository);
            _controller.ModelState.AddModelError("error", "some error");

            var section = new everisapi.API.Models.SectionWithoutAreaDto
            {
                Id     = 1,
                Nombre = "Asignacion_1"
            };

            everisapi.API.Entities.SectionEntity returnsSection = null;

            mockRepository.Setup(r => r.GetSection(It.IsAny <int>(), It.IsAny <bool>())).Returns(returnsSection);
            mockRepository.Setup(r => r.AddSection(It.IsAny <everisapi.API.Entities.SectionEntity>())).Returns(true);

            //Act
            var okResult = _controller.AddAsignacion(section);

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