Exemple #1
0
        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));
        }
Exemple #2
0
        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));
        }
Exemple #3
0
        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");
        }
Exemple #6
0
        public Project TeamProjectPostJsonModelToProject(TeamProjectPostJsonModel projectJson)
        {
            var project = _mapper.Map <TeamProjectPostJsonModel, Project>(projectJson);

            return(project);
        }