Ejemplo n.º 1
0
        public IActionResult UpdateProject([FromBody] ProjectCreateUpdateRequestDto updatedProjectData)
        {
            var projectForUpdate = _projectService.GetProjectById(updatedProjectData.Id.Value);

            if (projectForUpdate == null)
            {
                return(NotFound(updatedProjectData.Id));
            }

            if (ModelState.IsValid)
            {
                // Adding validation error for project name only if it's really changed
                // Otherwise user will not be able to edit project without changing its name
                if (projectForUpdate.Name != updatedProjectData.Name &&
                    _projectService.IsProjectExists
                        (updatedProjectData.Name, updatedProjectData.UserId.Value))
                {
                    ModelState.AddModelError("projectNameRemote",
                                             "Project for target user with specified name is already exists");
                }
            }

            if (ModelState.IsValid)
            {
                // Returns projectForUpdate object with fields rewritten according to DTO object
                projectForUpdate = _mapper.Map(updatedProjectData, projectForUpdate);
                _projectService.Update(projectForUpdate);
                return(Ok());
            }

            return(BadRequest(ModelState));
        }
        public void CreateProjectReturnsBadRequestOnInvalidData()
        {
            var projectData = new ProjectCreateUpdateRequestDto();
            ProjectsController controller = this.ProjectsControllerInstance;

            controller.ModelState.AddModelError("error", "error");

            IActionResult result = controller.CreateProject(projectData);

            Assert.IsType <BadRequestObjectResult>(result);
        }
        public void CreateProjectReturnsOkOnCorrectData()
        {
            var projectData = new ProjectCreateUpdateRequestDto()
            {
                Id     = 1,
                UserId = 1
            };

            IActionResult result = this.ProjectsControllerInstance.CreateProject(projectData);

            Assert.IsType <OkResult>(result);
        }
Ejemplo n.º 4
0
        public IActionResult CreateProject([FromBody] ProjectCreateUpdateRequestDto projectData)
        {
            if (ModelState.IsValid)
            {
                if (_projectService.IsProjectExists(projectData.Name, projectData.UserId.Value))
                {
                    ModelState.AddModelError("projectNameRemote", "Project for target user with specified name is already exists");
                }
            }

            if (ModelState.IsValid)
            {
                var project = _mapper.Map <Project>(projectData);
                _projectService.Create(project);
                return(Ok());
            }

            return(BadRequest(ModelState));
        }
Ejemplo n.º 5
0
        public void UpdateProjectReturnsOkOnSuccessfulUpdate()
        {
            var projectData = new ProjectCreateUpdateRequestDto()
            {
                Id          = 1,
                Name        = "Test",
                Description = "Test",
                UserId      = 1
            };

            _projectServiceMock.Setup(service => service.GetProjectById(It.IsAny <int>()))
            .Returns(TestValuesProvider.GetProjects().FirstOrDefault());

            IActionResult result = this.ProjectsControllerInstance.UpdateProject(projectData);

            _projectServiceMock.Verify(service => service.GetProjectById(projectData.Id.Value), Times.Once);
            _projectServiceMock.Verify(service => service.IsProjectExists(projectData.Name, projectData.UserId.Value), Times.Once);
            _projectServiceMock.Verify(service => service.Update(It.IsAny <Project>()), Times.Once);

            Assert.IsType <OkResult>(result);
        }
Ejemplo n.º 6
0
        public void UpdateProjectReturnsNotFoundIfProjectNotFoundById()
        {
            var projectData = new ProjectCreateUpdateRequestDto()
            {
                Id          = 1,
                Name        = "Test",
                Description = "Test",
                UserId      = 1
            };

            _projectServiceMock.Setup(service => service.GetProjectById(It.IsAny <int>()))
            .Returns(null as Project);

            IActionResult result = this.ProjectsControllerInstance.UpdateProject(projectData);

            _projectServiceMock.Verify(service => service.GetProjectById(projectData.Id.Value), Times.Once);
            _projectServiceMock.Verify(service => service.IsProjectExists(projectData.Name, projectData.UserId.Value), Times.Never);
            _projectServiceMock.Verify(service => service.Update(It.IsAny <Project>()), Times.Never);

            Assert.IsType <NotFoundObjectResult>(result);
        }
Ejemplo n.º 7
0
        public void UpdateProjectReturnsBadRequestOnInvalidData()
        {
            var projectData = new ProjectCreateUpdateRequestDto()
            {
                Id          = 1,
                Name        = "Test",
                Description = "Test",
                UserId      = 1
            };
            ProjectsController controller = this.ProjectsControllerInstance;

            controller.ModelState.AddModelError("error", "error");
            _projectServiceMock.Setup(service => service.GetProjectById(projectData.Id.Value))
            .Returns(TestValuesProvider.GetProjects().FirstOrDefault());

            IActionResult result = controller.UpdateProject(projectData);

            _projectServiceMock.Verify(service => service.GetProjectById(projectData.Id.Value), Times.Once);
            _projectServiceMock.Verify(service => service.IsProjectExists(projectData.Name, projectData.UserId.Value), Times.Never);
            _projectServiceMock.Verify(service => service.Update(It.IsAny <Project>()), Times.Never);

            Assert.IsType <BadRequestObjectResult>(result);
        }