public void GetProjectInfoReturnsOkIfProjectExists()
        {
            var requestData = new ProjectInfoRequestDto()
            {
                ProjectId = 1,
                UserId    = 1
            };
            Project        project        = TestValuesProvider.GetProjects().FirstOrDefault();
            ProjectInfoDto expectedResult = new ProjectInfoDto()
            {
                Id          = project.Id,
                Description = project.Description,
                Name        = project.Name,
                UserId      = project.UserId
            };

            _projectServiceMock.Setup(service => service.GetProjectById(requestData.ProjectId.Value))
            .Returns(project);
            _mapperMock.Setup(mapper => mapper.Map <Project, ProjectInfoDto>(It.IsAny <Project>()))
            .Returns(expectedResult);

            IActionResult result = this.ProjectsControllerInstance.GetProjectInfo(requestData);

            Assert.IsType <OkObjectResult>(result);
            Assert.Equal(expectedResult, (result as OkObjectResult)?.Value);
        }
        public void GetProjectInfoReturnsNotFoundIfServiceReturnedNull()
        {
            var requestData = new ProjectInfoRequestDto()
            {
                ProjectId = 1,
                UserId    = 1
            };

            _projectServiceMock.Setup(service => service.GetProjectById(requestData.ProjectId.Value))
            .Returns(null as Project);

            IActionResult result = this.ProjectsControllerInstance.GetProjectInfo(requestData);

            Assert.IsType <NotFoundObjectResult>(result);
        }
        public void GetProjectInfoReturnsBadRequestIfModelStateHasErrors()
        {
            var requestData = new ProjectInfoRequestDto()
            {
                ProjectId = 1,
                UserId    = 1
            };

            ProjectsController controller = this.ProjectsControllerInstance;

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

            IActionResult result = controller.GetProjectInfo(requestData);

            Assert.IsType <BadRequestObjectResult>(result);
        }
        public void GetProjectInfoReturnsUnauthorizedOnWrongUser()
        {
            var requestData = new ProjectInfoRequestDto()
            {
                ProjectId = 1,
                UserId    = 2
            };

            Project expectedProject = TestValuesProvider.GetProjects().FirstOrDefault();

            _projectServiceMock.Setup(service => service.GetProjectById(requestData.ProjectId.Value))
            .Returns(expectedProject);

            IActionResult result = this.ProjectsControllerInstance.GetProjectInfo(requestData);

            Assert.IsType <UnauthorizedResult>(result);
        }
示例#5
0
        public IActionResult GetProjectInfo([FromQuery] ProjectInfoRequestDto request)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var project = _projectService.GetProjectById(request.ProjectId.Value);

            if (project == null)
            {
                return(NotFound(request.ProjectId.Value));
            }

            if (project.UserId != request.UserId.Value)
            {
                return(Unauthorized());
            }

            var projectInfo = _mapper.Map <Project, ProjectInfoDto>(project);

            return(Ok(projectInfo));
        }