public ActionResult AddTeam(TeamProjectPostJsonModel teamJson) { var project = _projectProvider.GetProject(teamJson.ProjectId); var group = _groupMapper.ManagerPostTeamJsonModelToGroup(teamJson.Team); var trainees = teamJson.Team.Trainees.Select(_traineeMapper.TraineeJsonToTraineeMentorId).ToList(); var newGroup = _groupProvider.AddGroup(trainees, group, project); return(Json(newGroup.Id)); }
public JsonResult UpdateTeamProject(TeamProjectPostJsonModel projectJson) { var group = _groupMapper.ManagerPostTeamJsonModelToGroup(projectJson.Team); group.Project = _projectMapper.TeamProjectPostJsonModelToProject(projectJson); var trainees = projectJson.Team.Trainees.Select(_traineeMapper.TraineeJsonToTraineeMentorId).ToList(); var updatedGroup = _groupProvider.UpdateGroup(trainees, group); return(Json(updatedGroup.Id)); }
public JsonResult AddNewProject(TeamProjectPostJsonModel projectJson) { var project = _projectMapper.TeamProjectPostJsonModelToProject(projectJson); var group = _groupMapper.ManagerPostTeamJsonModelToGroup(projectJson.Team); var trainees = projectJson.Team.Trainees.Select(_traineeMapper.TraineeJsonToTraineeMentorId).ToList(); var newProject = _projectProvider.AddProject(project); var newGroup = _groupProvider.AddGroup(trainees, group, newProject); return(Json(newGroup.Id)); }
public void ManagerUpdateProject_UpdateProject_CorrectData() { // Input data var targetGroup = _context.Groups.Where(g => g.ProjectId.HasValue && g.Trainees.Count > 2).FirstOrDefault(); var freeTrainee = _context.Trainees.Where(t => !t.GroupId.HasValue).FirstOrDefault(); if (targetGroup == null) { Assert.Fail("Not found suitable group for this test"); } if (freeTrainee == null) { Assert.Fail("Not found trainee without group in database for this test"); } var mentorId = _context.Mentors.FirstOrDefault().Id; #region fakeJsonData var fakeTrainees = new List <ManagerTraineeJsonModel>(); for (int i = 0; i < targetGroup.Trainees.Count - 1; i++) { var trainee = targetGroup.Trainees.ElementAt(i); fakeTrainees.Add(new ManagerTraineeJsonModel { Id = trainee.Id, MentorId = mentorId }); } fakeTrainees.Add(new ManagerTraineeJsonModel { Id = freeTrainee.Id, FullName = freeTrainee.User.FullName, MentorId = mentorId }); var fakeJsonData = new TeamProjectPostJsonModel { Name = targetGroup.Project.Name + "UpdatedName", StartDate = DateTime.Now, FinishDate = DateTime.Now.AddMonths(5), Team = new TeamPostJsonModel { Id = targetGroup.Id, Number = targetGroup.Number + "UpdatedNumber", StartDate = DateTime.Now, FinishDate = DateTime.Now.AddDays(20), ScrumId = _context.ScrumMasters.FirstOrDefault().Id, Trainees = fakeTrainees, } }; #endregion var traineeKeys = fakeJsonData.Team.Trainees.Select(t => t.Id).ToArray(); // Act var result = _controller.UpdateTeamProject(fakeJsonData) as JsonResult; var updatedProject = _context.Projects.AsNoTracking().SingleOrDefault(p => p.Name == fakeJsonData.Name && p.Id == targetGroup.Project.Id); var updatedTeam = _context.Groups.AsNoTracking().FirstOrDefault(g => (g.Number == fakeJsonData.Team.Number) && (g.Id == (int)result.Data)); var updatedTraineesWithNewMentorIdCount = updatedTeam.Trainees.Where(t => traineeKeys.Contains(t.Id) && t.MentorId == mentorId).Count(); // Expected var traineeCount = fakeJsonData.Team.Trainees.Count; // Assert Assert.IsNotNull(result.Data, "Json is null"); Assert.IsNotNull(updatedProject, "Updated project not found in database"); Assert.AreEqual(fakeJsonData.StartDate.Date, updatedProject.StartDate.Date, "Incorrect StartDate field for updated project"); Assert.AreEqual(fakeJsonData.FinishDate.Date, updatedProject.FinishDate.Date, "Incorrect FinishDate field for updated project"); Assert.IsNotNull(updatedTeam, "New Team not found in database"); Assert.AreEqual(fakeJsonData.Team.StartDate.Date, updatedTeam.StartDate.Date, "Incorrect StartDate field for updated team"); Assert.AreEqual(fakeJsonData.Team.FinishDate.Date, updatedTeam.FinishDate.Date, "Incorrect FinishDate field for updated team"); Assert.AreEqual(fakeJsonData.Team.ScrumId, updatedTeam.ScrumMasterId, "Incorrect ScrumMasterId field for updated team"); Assert.IsNotNull(updatedTeam.Trainees, "New team has no trainees"); Assert.AreEqual(traineeCount, updatedTraineesWithNewMentorIdCount, "Expected count of trainees does not equal to actual count"); }
public void ManagerAddTeam_AddTeamToDatabase_CorrectData() { // Input data var freeTraineesIds = _context.Trainees.Where(t => !t.GroupId.HasValue).Select(t => t.Id).ToList(); var project = _context.Projects.AsNoTracking().FirstOrDefault(); if (freeTraineesIds.Count < 3) { Assert.Fail("Too little count of trainees without group for this test"); } var mentorId = _context.Mentors.FirstOrDefault().Id; #region fakeJsonTeam var fakeJsonProject = new TeamProjectPostJsonModel { ProjectId = project.Id, Team = new TeamPostJsonModel { Number = "TestAddingTeam-1", StartDate = DateTime.Now, FinishDate = DateTime.Now.AddDays(20), ScrumId = _context.ScrumMasters.FirstOrDefault().Id, Trainees = new List <ManagerTraineeJsonModel> { new ManagerTraineeJsonModel { Id = freeTraineesIds[0], MentorId = mentorId }, new ManagerTraineeJsonModel { Id = freeTraineesIds[1], MentorId = mentorId }, new ManagerTraineeJsonModel { Id = freeTraineesIds[2], MentorId = mentorId } } } }; #endregion // Act var result = _controller.AddTeam(fakeJsonProject) as JsonResult; var actualTraineeCountInNewTeam = _context.Groups .FirstOrDefault(g => (g.Number == fakeJsonProject.Team.Number) && (g.Id == (int)result.Data)) .Trainees.Count(); // Expected var traineeCount = fakeJsonProject.Team.Trainees.Count; var projectOfTeam = _context.Projects.SingleOrDefault(p => p.Id == fakeJsonProject.ProjectId); var addingTeam = _context.Groups.FirstOrDefault(g => (g.Number == fakeJsonProject.Team.Number) && (g.Id == (int)result.Data)); // Assert Assert.IsNotNull(result.Data, "Json is null"); Assert.IsTrue(addingTeam != null, "New Team not found in database"); Assert.AreEqual(fakeJsonProject.ProjectId, addingTeam.Project.Id, $"New Team has project id {addingTeam.Project.Id} but {fakeJsonProject.ProjectId} expected"); Assert.AreEqual(traineeCount, actualTraineeCountInNewTeam, $"New Team has {actualTraineeCountInNewTeam} but {traineeCount} expected"); Assert.IsNotNull(result.Data, "Result data is empty"); Assert.AreEqual(result.Data, addingTeam.Id, $"Returnable id of team in result is {result.Data}, but {addingTeam.Id} expected"); }
public Project TeamProjectPostJsonModelToProject(TeamProjectPostJsonModel projectJson) { var project = _mapper.Map <TeamProjectPostJsonModel, Project>(projectJson); return(project); }